一:
题目:打印出100-999之间所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
代码:
package demo; public class shuixianhua { public static void main(String[] args){ for(int i=100;i<=999;i++){ int a,aa,aaa; aaa=i/100;//百位 aa=(i%100)/10;//十位 a=i%10;//个位 if(i==(aaa*aaa*aaa+aa*aa*aa+a*a*a)){ System.out.println(i); } } } }
二:打印1----999的质数
package demo; public class 质数 { public static void main(String[] args) { boolean flag;// 标识位 for (int i = 2; i < 1000; i++) { // 找1-999的质数 flag = true; for (int j = 2; j < i; j++) { if (i % j == 0) { // 根据质数的定义,只允许自己本身和1能被整除 flag = false; break; // 跳出内层循环 } } if (flag == true) { System.out.println(i); } } } }
三:递归算法实现阶乘
package demo; public class 阶乘 { public static void main(String[] agrs){ System.out.println(Factorial(17)); //计算17的阶乘 } public static long Factorial(int i){ if(i==1){ return 1; }else{ return i*Factorial(i-1); //递归运行 } } }
四:题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
package demo; public class 自由落体 { public static void main(String[] args){ double h=100; //除法要精度高 double sum=0; for (int i = 1; i<=10; i++) { sum+=h; //落下去的长度 h=h/2; if(i!=10){ //第十次落地不弹起来 sum+=h; //弹起来的长度 } } System.out.println(sum+","+h); } }
时间: 2024-12-15 06:23:15