package javaSE.date1_1; import java.util.Arrays; import java.util.Random; import java.util.Scanner; public class HomrWork { public static void main(String[] args) { // PalindromeNumber(); // PerfectNumber(); task10(); } public static void PalindromeNumber(){ //第一题 //打印5位数中的所有回文数,每行打印10个数。最后统计一下一共有多少个5位回文数。12321 //注:回文数即正反读都是一个数,5位数的话,只要个位与万位相同,十位与千位相同就是一个回文数。 int count=0; for (int i = 10000; i <100000 ; i++) { if ((i/10000==i%10000%1000%100%10)&&(i/1000%10==i/10%1000%100%10)){ count++; System.out.print(i+" "); if (count%10==0){ System.out.println(); } } } System.out.println(count); } //task02 public static void PerfectNumber(){ //一个数如果恰好等于它的所有真因子(即除了自身外的所有因数)之和,这个数就称为"完数"。 //请编程求出1000 以内的所有完数。 for (int i = 1; i < 1001; i++) { int sum=0; for (int j = 1; j < i; j++) { if ((i%j==0)){ sum+=j; } } if (sum==i){ System.out.println(i); } } } //task03 public static void task03(){ //3、【求不重复数字】 //有1、2、3、4一共四个数字,能组成多少个不相等且无重复数字的三位数?都是多少? int count=0; for (int i = 1; i <5 ; i++) { for (int j = 1; j <5 ; j++) { for (int k = 1; k <5 ; k++) { if (i!=j&&i!=k&&j!=k){ count++; System.out.print(i+""+j+k+" "); if (count%6==0){ System.out.println(); } } } } } System.out.println(); System.out.println("一共有:"+count+"个数"); } public static void task04(){ //4、【根据输入求输出-求位数、逆序输出】 //键盘录入一个正整数,请求:1.它是几位数?2.逆序打印出各位数字。 Scanner sc=new Scanner(System.in); System.out.println("请输入一个正整数:"); int a=Integer.parseInt(sc.nextLine()); String b=a+""; String[] c=b.split(""); System.out.println("它是"+c.length+"位数"); for (int i = c.length-1; i >=0 ; i--) { System.out.print(c[i]); } } public static void task05(){ //【数列的前n项和】 //有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13. 求出这个数列的前20项之和。 double a=1,b=2,c,d,sum=0; for (int i = 0; i < 20; i++) { c=b/a; sum+=c; d=b; b=a+b; a=d; } System.out.println(sum); } public static void task06(){ //6、【求奇数/偶数和】 //求100以内的所有奇数/偶数的和。 int sum1=0; int sum2=0; for (int i = 1; i <101 ; i+=2) { sum1+=i; } System.out.println("奇数和:"+sum1); for (int i = 0; i <=100 ; i+=2) { sum2+=i; } System.out.println("偶数和:"+sum2); } public static void task07(){ //7、【自由落体】 //假如一个小球从100米高度自由落下,每次落地后就反跳回原高度的一半。 // 那么求它在第10次落地时,共经过多少米?第10次反弹多高? double d=100; double sum=0; int a=100; for (int i = 0; i <11 ; i++) { d=0.5*d; sum+=d; // System.out.println(d); } System.out.println("10次一共反弹:"+sum+"米"); System.out.println("第10次反弹:"+d); } public static void task08(){ //8、【循环练习-蜗牛爬井】 //井里有一只蜗牛,他白天往上爬5米,晚上掉3.5 米,井深56.7米,计算蜗牛需要多少天才能从井底到爬出来。 /* for (float i = 1; i <100 ; i+=0.001) { if (i*(5-3.5)>=56.7){ System.out.printf("%.2f",i); break; } }*/ //改 int day=1; double h=0; while (h<=56.7){ h+=5; if (h<=56.7){ h-=3.5; }else { break; } day++; } System.out.println(day); } public static void task09(){ //9、【求和-去除7倍数和包含7】 //打印出1-100之间所有不是7的倍数和不包含7的数字, 并求和。 int sum=0; int count=0; for (int i = 0; i < 101; i++) { if (i%7!=0&&i/10!=7&&i%10!=7){ System.out.print(i+" "); count++; if (count%15==0){ System.out.println(); } sum+=i; } } System.out.println(); System.out.println(sum); } public static void task10(){ //10、【排序】 //随机给十个数字,对它们进行排序。(可以给一个有10个整数元素的数组,然后对数组排序) Random r=new Random(); int [] a=new int[10]; for (int i = 0; i < 10; i++) { a[i]=r.nextInt(100); } System.out.println("排序前"+Arrays.toString(a)); Arrays.sort(a); System.out.println("排序后"+Arrays.toString(a)); for (int i = 0; i < a.length-1; i++) { for (int j = 0; j < a.length-1-i; j++) { if (a[j+1]>=a[j]){ int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } System.out.println("排序后"+Arrays.toString(a)); } }
1-1元旦练习
于 2023-01-03 10:08:31 首次发布