import java.util.Arrays; import java.util.Scanner; public class HomeWork1230 { // 1、【回文数】 // 打印5位数中的所有回文数,每行打印10个数。最后统计一下一共有多少个5位回文数。 // 注:回文数即正反读都是一个数,5位数的话,只要个位与万位相同,十位与千位相同就是一个回文数。 // public static void hws() { int ct = 0; for (int i = 10000; i < 100000; i++) { int a1 = i / 10000; int a2 = i / 10 % 10; int a4 = i / 1000 % 10; int a5 = i % 10; if (a2 == a4 && a1 == a5) { System.out.println("回文数是:" + i); ct++; if (ct%10==0){ System.out.println(); } } } System.out.println("回文数总共有: " + ct); } // 2、【求完数】 // 一个数如果恰好等于它的所有真因子(即除了自身外的所有因数)之和,这个数就称为"完数"。 // // 请编程求出1000 以内的所有完数。 // public static void qws() { for (int i = 1; i <= 1000; i++) { int sum = 0; for (int j = 1; j <= i / 2; j++) { if (i % j == 0) { sum += j; } } if (sum == i) { System.out.println(i); } } } // 3、【求不重复数字】 // 有1、2、3、4一共四个数字,能组成多少个不相等且无重复数字的三位数?都是多少? // // 注:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的就可以了。 // public static void bcfsz() { int x = 0; for (int i = 1; i <= 4; i++) { for (int j = 1; j <= 4; j++) { for (int k = 1; k <= 4; k++) { if (i == j || i == k || j == k) { continue; } int num = i * 100 + j * 10 + k; System.out.print(num + "\t"); x++; } } System.out.println(); } System.out.println("一共有" + x + "个互不相同且无重复数字的三位数"); } // 4、【根据输入求输出-求位数、逆序输出】 // 键盘录入一个正整数,请求:1.它是几位数?2.逆序打印出各位数字。 // public static void qsc() { System.out.println("请输入一个正整数"); Scanner x = new Scanner(System.in); int q = x.nextInt(); String a = Integer.toString(q); char[] ch = a.toCharArray(); int y = ch.length; System.out.println(q + "是一个" + y + "位数"); for (int i = ch.length -1; i >= 0; i--) { System.out.print(ch[i] + ","); } } // 5、【数列的前n项和】 // 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13. 求出这个数列的前20项之和。 // // 注:提前告诉你答案是32.66026079864164 // public static void slqh() { int a, b, c; double sl = 0.0; int a1 = 0, a2 = 1, a3 = 1; for (int i = 0; i < 20; i++) { a = a2 + a3;//求得分母 b = a1 + a2;//求得分子 sl += (double) a / b;//计算和 a3 += a2;//加等a2的值 c = a2;//临时变量储存 a2 += a1;//加等a1的值 a1 = c;//a1的值转换成c } System.out.println(sl); } // 6、【求奇数/偶数和】 // 求100以内的所有奇数/偶数的和。 // public static void qh() { int x = 0, y = 0; for (int i = 0; i < 101; i += 2) { x += i; } for (int i = 1; i < 101; i += 2) { y += i; } System.out.println("偶数的和为" + x); System.out.println("奇数的和为" + y); System.out.println("总和为" + (y + x)); } // 7、【自由落体】 // 假如一个小球从100米高度自由落下,每次落地后就反跳回原高度的一半。那么求它在第10次落地时,共经过多少米?第10次反弹多高? // public static void zylt() { double x = 100;//反弹 double y = 100;//经过 for (int i = 0; i < 10; i++) { x = x / 2; y = y + x+x; System.out.printf("%s--%s\n",x,y); } y=y-x; System.out.println("第十次反弹高度是:" + x ); System.out.println("总共经过" + y); } // 8、【循环练习-蜗牛爬井】 // 井里有一只蜗牛,他白天往上爬5米,晚上掉3.5 米,井深56.7米,计算蜗牛需要多少天才能从井底到爬出来。 // public static void wnpj() { float wn = 0f; float sj = 56.7f; int x = 0; while (wn <= sj) { x++; wn = wn + 5; if (wn >= sj) { break; } else { wn = wn - 3.5f; } System.out.println(wn); } System.out.println(x); } // 9、【求和-去除7倍数和包含7】 // 打印出1-100之间所有不是7的倍数和不包含7的数字, 并求和。 // public static void qcq() { int x = 0; for (int i = 1; i < 101; i++) { int b = i / 10 % 10; int c = i % 10; if (i % 7 == 0 || b == 7 || c == 7) { continue; } x += i; System.out.println(i); } System.out.println("去除后的和是:"+x); } // 10、【排序】 // 随机给十个数字,对它们进行排序。(可以给一个有10个整数元素的数组,然后对数组排序) public static void px(){ int[]x=new int[10]; for (int i = 0; i < x.length; i++) { x[i]=(int) (Math.random()*100); } Arrays.sort(x); System.out.println(Arrays.toString(x)); //使用冒泡排序:每两个元素做对比 如果前者》后者 则交换位置 //每一轮排序后 都会将最大值放到末尾 for (int i = 0; i < x.length; i++) { for (int j = 0; j <x.length-1-i ; j++) { if (x[j]>x[j+1]){ int temp=x[j+1]; x[j+1]=x[j]; x[j]=temp; } } System.out.println("第"+(i+1)+"轮排序后的结果"+Arrays.toString(x)); } System.out.println("最终排序的结果是:"+Arrays.toString(x)); } public static void main(String[] args) { // hws(); // qws(); // bcfsz(); // qsc(); // slqh(); // qh(); // zylt(); // wnpj(); // qcq(); px(); } }
循环语句与分支语句的实际运用方式
于 2023-01-03 11:53:01 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)