news 2026/9/2 21:32:27

头歌Scala-Scala中循环的使用(含通关代码)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
头歌Scala-Scala中循环的使用(含通关代码)

第1关:While循环的使用

编程要求


仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,计算给定的 n 个整数中所有的非负数之和,具体要求如下:

接收给定的一行整数(例:4 56 5 -10 10,其中第一个数代表 n,其余数代表具体值);
计算除第一个数之外的所有非负整数之和。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

例:
测试输入:

4 56 5 -10 10
预期输出:

71
开始你的任务吧,祝你成功!

代码1

import scala.io.StdIn object WhileDemo { def main(args: Array[String]): Unit = { // 请在 Begin-End 间编写代码 /********** Begin **********/ // 读取第一个数 n val n = StdIn.readInt() var i = 0 var sum = 0 while (i < n) { val num = StdIn.readInt() // 使用 readInt() 而不是 readLine() if (num >= 0) { // 判断是否是非负数 sum = sum + num } i = i + 1 } println(sum) /********** End **********/ } }

第2关:do...while 循环的使用

编程要求


仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,统计给定的 n 个整数中正数和负数分别有多少个,具体要求如下:

接收给定的多行数据(例:4 \n 56 \n 5 \n -10 \n 10,其中第一个数代表 n,其余数代表具体值,\n 仅用来说明前一个数与另一个数之间是换行,实际数据中并没有);
统计正数和负数的个数(注意第一个数无需统计)。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

例:
测试输入:

4
56
5
-10
10
预期输出:

正数个数:3
负数个数:1
开始你的任务吧,祝你成功!

代码2

import scala.io.StdIn object WhileDemo { def main(args: Array[String]): Unit = { // 定义变量 positive,并赋初值0,用于统计正数个数 var positive: Int =0 // 定义变量 negative,并赋初值0,用于统计负数个数 var negative: Int =0 // 定义变量 i,用于统计循环次数 var i: Int =0; // 读取控制台输入的整数值 var n: Int =StdIn.readInt() // 在do后的花括号中编写循环语句,统计正数个数和负数个数 do{ // 请在 Begin-End 间编写代码 /********** Begin **********/ // 读取一个整数 val num = StdIn.readInt() // 判断正负数 if (num > 0) { positive = positive + 1 } else if (num < 0) { negative = negative + 1 } // 循环次数加1 i = i + 1 /********** End **********/ } // 在while后判断终止条件 while (i < n) // 输出结果 println(s"正数个数:$positive") println(s"负数个数:$negative") /********** End **********/ } }

第3关:for 循环的使用

编程要求


仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,输出所有的水仙花数。

水仙花数的特征:

该值处于 100(包括)到 999(包括)之间;
其个位数的三次幂,十位数的三次幂,百位数的三次幂的和等于这个数本身。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

例:
测试输入:


预期输出:

407是一个水仙花数
开始你的任务吧,祝你成功!

代码3

object ForDemo { def main(args: Array[String]): Unit = { // 请在 Begin-End 间编写代码 /********** Begin **********/ // 使用 for 循环输出所有的水仙花数 for (num <- 100 to 999) { val hundred = num / 100 val ten = (num % 100) / 10 val unit = num % 10 val sum = Math.pow(hundred, 3) + Math.pow(ten, 3) + Math.pow(unit, 3) if (sum == num) { println(num + "是一个水仙花数") } } /********** End **********/ } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 8:21:02

如何快速掌握Applite:Homebrew Cask的终极图形化管理指南

还在为复杂的命令行操作而烦恼吗&#xff1f;Applite为您带来革命性的Homebrew Cask图形化管理体验&#xff01;这款专为macOS设计的开源应用程序&#xff0c;将繁琐的终端命令转化为直观的点击操作&#xff0c;让软件包管理变得前所未有的简单。无论您是编程新手还是资深开发者…

作者头像 李华
网站建设 2026/9/1 18:38:34

LobeChat自定义Prompt模板库建设方法

LobeChat自定义Prompt模板库建设方法 在今天&#xff0c;越来越多的开发者和企业开始将大语言模型&#xff08;LLM&#xff09;融入日常工作流——写代码、生成文案、做翻译、处理客服请求……但一个现实问题随之而来&#xff1a;每次都要手动输入一长串提示词来“唤醒”模型的…

作者头像 李华
网站建设 2026/8/31 10:39:02

Linux操作系统搭建和应用

Linux版本选择与安装 Linuxjies Linux是一个内核&#xff0c;最早由Linus发布现在的Linux&#xff0c;基本上是GUN/Linux很多Linux系统&#xff0c;例如Debian&#xff0c;都是基于Linux的衍生系统 版本介绍 ReHat 系列&#xff1a;Debian系列国产系列 获取和安装Linux 买云服务…

作者头像 李华
网站建设 2026/9/1 13:09:11

百度网盘下载提速终极方案:告别蜗牛速度的实战指南

你是否曾经经历过这样的煎熬时刻&#xff1a;面对百度网盘中急需的资料&#xff0c;下载速度却像蜗牛爬行&#xff0c;几十KB的速率让你几乎要抓狂&#xff1f;明明宽带速度足够&#xff0c;却只能在漫长的等待中消耗宝贵时间。今天&#xff0c;我将为你揭秘一个能够彻底解决这…

作者头像 李华
网站建设 2026/9/2 3:32:17

AI搜索排名GEO优化文旅业白皮书

AI搜索排名GEO优化文旅业白皮书引言随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;其在文旅业的应用日益广泛&#xff0c;尤其是在搜索引擎优化&#xff08;SEO&#xff09;领域。GEO优化作为一种新型的SEO策略&#xff0c;通过地理定位和个性化推荐&#…

作者头像 李华
网站建设 2026/9/2 19:53:14

【优化求解】基于遗传算法GA地面运动选择方法匹配广义条件强度测量的目标分布,目标IM的均值标准差CDF附含Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码获取及仿…

作者头像 李华