50 道 Java 基础编程练习题
1.指数计算问题
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
public class Prog1{
public static void main(String[] args){
int n = 10;
System.out.println("第"+n+"个月兔子总数为"+fun(n));
}
private static int fun(int n){ if(n==1 || n==2) return 1; else return fun(n-1)+fun(n-2);
}
}
2.指定范围包含的素数
判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
3.水仙花数
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
代码输出为:153 370 371 407 (空格隔开)
public class test {
public static void main(String[] args) {
for(int i = 100; i < 1000; i++){
if(fun(i)) System.out.print(i+" ");
}
}
private static boolean fun(int num) {
int m = 0;
int n = num;
int sum = 0;
m = n / 100; //m=1为百位上的数字
n -= m * 100; //n=53
sum = m*m*m; //百位上的数字的立方
m = n / 10; //m=5更新为10位上的数字
n -= m*10; //n=3 个位
sum += m*m*m + n*n*n;
if(sum == num) return true;
else return false;
}
}
查看20道真题和解析
