十道循环题目

发布时间 2023-09-15 17:33:28作者: RepublicLine

1.输出所有满足下列条件的四位数.
条件:个位数字加百位数字等于千位数字加上十位数字,且该该数为奇数.
2.求1-100之间所有7的倍数的和,并在页面输出 7+14+21+...+... =
3.通过for循环实现百钱买百鸡的问题:
公鸡5元每只,母鸡3元每只,小鸡3只1元,100元买一百只鸡多少种办法?
4.鸡兔同笼35个头94只脚, 鸡有多少只兔有多少只?
5.在控制台输出99乘法表
6.公园里有一只猴子和一堆桃子 猴子每天吃掉桃子总数的一半,把剩下一半中扔掉一个坏的 到第七天的时候,猴子睁开眼发现只剩下一个桃子
问公园里刚开始有多少个桃子?
7.输出1~100之间的质数
8.一个小球从100米空中落下,每次反弹一半高度,请问第10次反弹的高度是多少?小球总共经过多少米
9.已知2019年是猪年,请在控制台输出从1949年到2019年中所有是猪年的年份。
10.有一个很有名的数学逻辑题叫做不死神兔问题,有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第十二个月的兔子对数为多少?

public class Test {
    public static void main(String[] args) {
        // test02();
        // test03();
        // test04();
        // test05();
        //
        //System.out.println(test06(1));

        //test07();
        
        // test09(100,10);

        // test10();
        // System.out.println(test11(12));
        // System.out.println(test12(12));
    }

    //输出所有满足下列条件的四位数.
    //条件:个位数字加百位数字等于千位数字加上十位数字,且该该数为奇数.
    public static void test01(){
        for(int i = 1001; i<10000; i+=2){
            //个位 i%10  十位 i/10 % 10  
            if( (i % 10 + (i/100 % 10)) == (i/1000 % 10)+(i/10 %10) ){
                System.out.println(i);
            }
        }
    }

    //求1-100之间所有7的倍数的和,并在页面输出 7+14+21+...+... =
    public static void test02(){
        String str = "7";
        int sum = 0;
        for(int i = 8; i<=100; i++){
            if(i % 7 == 0){
                str += "+"+i;
                sum += i;
            }
        }
        System.out.println(str+"="+sum);
    }
    //通过for循环实现百钱买百鸡的问题:
    //公鸡5元每只,母鸡3元每只,小鸡3只1元,100元买一百只鸡多少种办法?
    // i公鸡, j母鸡, k小鸡
    public static void test03(){
        int count = 0;
        for(int i = 0; i <= 20; i++){
            for(int j = 0; j <= 33;j++){
                for(int k = 0; k <= 100; k++){
                    //(a+b+c == 100 && 5*a + 3*b + 1/3*c == 100
                    if(i + j+ k == 100 &&  15 * i + 9 * j +  k  == 300){
                        count++;
                        System.out.println("公鸡"+i+","+"母鸡"+j+"小鸡"+k);
                    }
                }
            }
        }
        System.out.println("一共有"+count+"种方法");
    }
    //鸡兔同笼35个头94只脚, 鸡有多少只兔有多少只?
    public static void test04(){
        for(int i = 0; i<=35; i++){
            for(int j = 0; j<=35; j++){
                if(i+j == 35 && 2*i + 4*j == 94){
                    System.out.println("鸡有"+i+"只"+","+"兔子有"+j+"只");
                }
            }
        }
    }

    //5.在控制台输出99乘法表
    public static void test05(){
        String str = "";
        for(int i = 1; i <= 9; i++){
            for(int j = 1; j <= i; j++){
                str += i+"*"+j+"="+i*j+"\t";
            }
            str+="\n";
        }
        System.out.println(str);
    }

    //6公园里有一只猴子和一堆桃子 猴子每天吃掉桃子总数的一半,把剩下一半中扔掉一个坏的 到第七天的时候,猴子睁开眼发现只剩下一个桃子
    //问公园里刚开始有多少个桃子?
    public static int test06(int day){
        if(day == 7){
            return 1;
        }else if(day >= 1 && day <= 6){
            return (test06(day+1)+1) * 2;
        }else{
            return -1;
        }
    }

    //7输出1~100之间的质数
    public static void test07(){
        for(int i = 2; i<=100 ; i++){
            int j = 0;
            for(j = 2; j < i; j++){
                if( i % j == 0){
                    break;
                }
            }
           if(j == i){
                System.out.println(i);
            }
        }
    }
    //7输出1~100之间的质数
    public static void test08(){
        for(int i = 2; i <= 100; i++){
            boolean flag = true;
            for(int j = 2; j <= i; j++){
                if(i % j == 0){
                    flag = false;
                    break;
                }
            }
            if(flag){
                System.out.println(i);
            }
        }
    }
    //8 一个小球从100米空中落下,每次反弹一半高度,
    //请问第10次反弹的高度是多少?小球总共经过多少米
    public static void test09(float high,int numTimes){
        float len = 100;
        for(int i = 1; i <= numTimes; i++){
            len += high;
            high = high/2;
        }
        System.out.println(len);
        System.out.println(high);
    }
    //已知2019年是猪年,请在控制台输出从1949年到2019年中所有是猪年的年份。
    public static void test10(){
        for(int i = 2019; i >= 1949; i -= 12){
            System.out.println("猪年年份有:"+i);
        };
    }

    //有一个很有名的数学逻辑题叫做不死神兔问题,
    //有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
    //假如兔子都不死,问第十二个月的兔子对数为多少?
    
    //递归 
    public static int test11(int month){
        if(month == 1 || month ==2){
            return 1;
        }else{
            return test11(month-1) + test11(month - 2);
        }
    }

    //非递归   三月份兔子 = 上个二月份兔子+三月本身的兔子    二月份兔子 = 上个一月份兔子   一月份兔子 = 上个三月份兔子   
    public static int test12(int month){
        int yiyue = 1;
        int eryue = 0;
        int sanyue = 0;
        
        for(int i = 2; i <= month; i++){
            sanyue += eryue;
            eryue = yiyue;
            yiyue = sanyue;
        };

        return yiyue+eryue+sanyue;
    }
}