目录
1、用while循环语句,计算1--2000之间的所有3的倍数之和。
3、水仙花数是指其个位、十位和百位上三个数的立方之和等于这个数本身。通过循环,判断100-999之间所有的数字,符合水仙花数条件的数字。
4、已知 XYZ + YZZ = 532,其中X、Y和Z为数字,编程求出X、Y和Z的值。
5、编程实现“百钱买百鸡”问题。母鸡5分钱一只,公鸡三分钱一只,小鸡一分钱三只,现在有百钱欲买百鸡,有多少种买法?程序分别用三种方法来写
6、一个整数的各位数字之和能被9整除,则该数也能被9整除。验证这个定理的正确性。(暴力美学证明并不难,但优化会上瘾)
7、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问2年后的兔子总数为多少?(请用递归编程实现)
代码文件在资源~
1、用while循环语句,计算1--2000之间的所有3的倍数之和。
【实验具体内容】
(1)实验流程图(非必须,根据实际要求来定,算法题建议画流程图):

(2)实验源代码(粘贴源代码):
public class SumofMultiples {
public static void main(String[] args) {
int sum = 0; // 用于存储总和
int i = 1;
while (i<= 2000) { // 循环条件
if (i % 3 == 0) { // 检查是否是3的倍数
sum += i; // 累加到总和
}
i++; // 增加计数器
}
System.out.println("1到2000之间所有3的倍数之和为: " + sum);
}
}
(3)实验代码、过程、相应结果(截图)并对实验进行说明和分析:
①新建Java Project。添加class,命名为SumofMultiples 。
②输入代码,ctrl+F11,控制台显示结果如下。

2、Scanner类是java.util包中的一个常用于控制台的输入的类,当需要使用控制台输入时,可调用该类完成程序交互,利用Scanner类和switch语句实现输入某年某月,判断某年(考虑闰年)的某个月份有几天的程序。
【实验具体内容】
(1)实验流程图(非必须,根据实际要求来定,算法题建议画流程图):

(2)实验源代码(粘贴源代码):
import java.util.Scanner;
public class JudgeDayNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//使用 System.in 作为参数, Scanner 从标准输入(通常是键盘)读取数据。
System.out.print("请输入年份:");
int year = scanner.nextInt();//// 读取一个整数
System.out.print("请输入月份(1-12):");
int month = scanner.nextInt();
scanner.close();//调用close() 方法来关闭 Scanner,释放与之关联的资源
// 判断闰年
boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
int days;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
// 闰年2月为29天,否则为28天
days = isLeapYear ? 29 : 28;
break;
default:
System.out.println("输入的月份不正确!");
return;
}
System.out.println(year + "年" + month + "月有" + days + "天。");
}
}
(3)实验代码、过程、相应结果(截图)并对实验进行说明和分析:
①新建Java Project。添加class,命名为JudgeDayNumber 。
②输入代码,ctrl+F11,控制台显示结果如下。输入年份、月份,回车得到结果。

3、水仙花数是指其个位、十位和百位上三个数的立方之和等于这个数本身。通过循环,判断100-999之间所有的数字,符合水仙花数条件的数字。
(例如:1^3 + 5^3 + 3^3 = 153)
【实验具体内容】
(1)实验流程图(非必须,根据实际要求来定,算法题建议画流程图)略
(2)实验源代码(粘贴源代码):
public class NarcissisticNumber {
public static void main(String[] args) {
// 遍历100到999之间的所有数
for (int i = 100; i < 1000; i++) {
int hundreds = i / 100; // 百位
int tens = (i % 100) / 10; // 十位
int ones = i % 10; // 个位
// 计算立方和
int sum = (int) (Math.pow(hundreds, 3) + Math.pow(tens, 3) + Math.pow(ones, 3));
//Math.pow(x, y) 会返回 x 的 y 次幂,double 类型
// 判断立方和是否等于原数
if (sum == i) {
System.out.println(i + " 是水仙花数");
}
}
}
}
(3)实验代码、过程、相应结果(截图)并对实验进行说明和分析:
①新建Java Project。添加class,命名为NarcissisticNumber 。
②输入代码,ctrl+F11,控制台显示结果如下。

4、已知 XYZ + YZZ = 532,其中X、Y和Z为数字,编程求出X、Y和Z的值。
【实验具体内容】
(1)实验流程图(非必须,根据实际要求来定,算法题建议画流程图):略
(2)实验源代码(粘贴源代码):
public class SolveEquation {
public static void main(String[] args) {
for (int X=1; X< 10; X++) {
for (int Y=1; Y< 10; Y++) {
for (int Z=0; Z< 10; Z++) {
if((100*X+10*Y+Z+100*Y+10*Z+Z)==532) {
System.out.println("X=" + X + ", Y=" + Y + ", Z=" + Z);
}
}
}
}
}
}
(3)实验代码、过程、相应结果(截图)并对实验进行说明和分析:
①新建Java Project。添加class,命名为SolveEquation。
②输入代码,ctrl+F11,控制台显示结果如下。

5、编程实现“百钱买百鸡”问题。母鸡5分钱一只,公鸡三分钱一只,小鸡一分钱三只,现在有百钱欲买百鸡,有多少种买法?程序分别用三种方法来写
第一方法是程序中有三层的循环,这个效率最低,第二方法是程序采用两层循环实现,第三方法是程序采用一层循环实现。此题来理解程序效率
【实验具体内容】


1187

被折叠的 条评论
为什么被折叠?



