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;
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务