一:
题目:打印出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);
} }