zoukankan      html  css  js  c++  java
  • java流程控制之习题

     经过近段时间的学习,差不多也掌握了java的流程控制以及基本知识,下面就来一起练练习题吧,看能做出来几道。

    第一道题:假设小明有100块钱,这时候小明去超市需要换零钱,超市提供的零钱有1元面值,2元面值,5元面值,10元面值,20元面值,50元面值,问小明可以有多少种兑换方式?
    第二道题:假设小明有100块钱,这时候小明去超市买可乐,可乐3块钱一瓶,超市卖家每次卖给小明一瓶可乐,就比原来的贵2/3的价钱,小明的瓶子每一个瓶子可以换半瓶可乐(只有半瓶换不出来),问小明最多可以在该超市中买走多少瓶可乐?
    第三道题:打印图案题:
       1. 打印 7行的实心菱形
     
       2. 打印11行的实心梯形
       3. 打印13行的实心的等腰直角三角形
    第四道题:求一下10以内的所有阶乘数的和 1!+2!+3!+.....+10!=?
    第五道题:生兔子案列:假设你有一对兔子,第一个月不生,第二个月也不生,第三个月开始生一对兔子,从第三个月开始每个月都生一对兔子,小兔子长大到第三个月后每个月又生一对兔子,假如兔子都不死,问12个月之后,你拥有多少对兔子?
    第六道题:给定任意一个10位以内的正整数,确定该数是几位数?
    第七道题:将一个正整数分解成因数,
    第八道题:给定任意两个正整数,求一下他们的最大公约数和最小公倍数。
    第九道题:求一下1000以内的所有的完数。完数 = 一个数如果恰好等于他的因子之和,这个数就称为完数 6 = 1 + 2 + 3 = 6
     
     
     

     
    第一题:
    假设小明有100块钱,这时候小明去超市需要换零钱,超市提供的零钱有1元面值,2元面值,5元面值,10元面值,20元面值,50元面值,问小明可以有多少种兑换方式?
    答案如下:
            int a1 = 0;
            for (int i1 = 0;i1<=100;i1++){
                for (int i2 = 0;i2<=50;i2++){
                    for (int i5=0;i5<=20;i5++){
                        for (int i10=0;i10<=10;i10++){
                            for (int i20=0;i20<=5;i20++){
                                for (int i50=0;i50<=2;i50++){
                                    if (i1*1+i2*2+i5*5+i10*10+i20*20+i50*50==100){
                                        a1++;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            System.out.println(a1);

    第二道题:

    假设小明有100块钱,这时候小明去超市买可乐,可乐3块钱一瓶,超市卖家每次卖给小明一瓶可乐,就比原来的贵2/3的价钱,小明的瓶子每一个瓶子可以换半瓶可乐(只有半瓶换不出来),问小明最多可以在该超市中买走多少瓶可乐?

    答案如下:

            double money2 = 100.0;
            double kele2 =3.0;
            double a2 = 3.0;
            double b2 = 2.0;
            double c2 = b2/a2;
            int d2 = 0;
            for (int i2 = 0;money2>kele2;i2++){
                money2 = money2 - kele2;
                kele2 =kele2 + kele2 * c2;
                d2++;
                if (d2%2==0){
                    d2++;
                }
            }
            System.out.println(d2);

    第三道题:打印图案题:
       1. 打印 7行的实心菱形
     
       2. 打印11行的实心梯形
       3. 打印13行的实心的等腰直角三角形

    答案如下:

         //菱形
            for(int i3=1;i3<=4;i3++){
                for (int a3=1;a3<=4-i3;a3++){
                    System.out.print(" ");
                }
                for(int a3=1; a3<=(2*i3-1);a3++){
                    System.out.print("*");
                }
                System.out.println();
            }
            for(int i3=3;i3>=1;i3--){
                for (int a3=1;a3<=4-i3;a3++){
                    System.out.print(" ");
                }
                for(int a3=1; a3<=(2*i3-1);a3++){
                    System.out.print("*");
                }
                System.out.println();
            }//梯形
            for (int i = 3;i<=13;i++){
                for (int a=1;a<=13-i;a++){
                    System.out.print(" ");
                }
                for (int c=1;c<=(2*i-1);c++){
                    System.out.print("*");
                }
                System.out.println();
            }
            //直角三角形
            for (int i =1;i<=12;i++){
                for (int i1=1;i1<=i;i1++){
                    if (i==i1||i1==1){
                        System.out.print(" "+"*");
                    }else{
                        System.out.print(" "+" "+" ");
                    }
                }
                System.out.println("");
            }
            System.out.println(" *  *  *  *  *  *  *  *  *  *  *  *  *");
    

    第四道题:

    求一下10以内的所有阶乘数的和 1!+2!+3!+.....+10!=?

    答案如下:

            //第四题
            int a4 = 1;
            int c4 = 0;
            for (int i4 = 1; i4<=10;i4++){
                for (int b4 =1;b4<=i4;b4++){
                    a4=a4*b4;
                }
                c4=c4+a4;
                a4=1;
            }
            System.out.println(c4);

    第五道题:

    生兔子案列:假设你有一对兔子,第一个月不生,第二个月也不生,第三个月开始生一对兔子,从第三个月开始每个月都生一对兔子,小兔子长大到第三个月后每个月又生一对兔子,假如兔子都不死,问12个月之后,你拥有多少对兔子?

    答案如下:

            int month = 12;
            long a = 1l,b = 1l,c = 0l;
            for (int i = 0;i < month-2;i++){
                c = a + b;
                a = b;
                b = c;
            }
            System.out.println("拥有"+c+"只兔子");

    第六道题:

    给定任意一个10位以内的正整数,确定该数是几位数?

    答案如下:

            int a6 = 999;
            int b6 = 1;
            for (int i = 1; i<=10;i++){
                if (a6/10!=0){
                    b6++;
                    a6=a6/10;
                }else{
                    break;
                }
            }
            System.out.println(b6);    

    第七道题:

    将一个正整数分解成因数,

    答案如下:

            int a7 =20;
            for (int i7=1;i7<=a7;i7++){
                for (int b7=1;b7<=a7;b7++){
                    if (i7*b7==a7&&b7!=a7){
                        System.out.print(b7+" ");
                    }
                }
            }

    第八道题:

    给定任意两个正整数,求一下他们的最大公约数和最小公倍数。

    答案如下:

           int a8 =20;
           int b8 =10;
           int max = 0,min = 0;
           if (a8>b8){
               int t = a8;
               b8 = a8;
               a8 = t;
           }
            for (int i=1;i<=a8;i++){
                if (a8%i==0&&b8%i==0){
                    max=i;
                }
            }
            min=a8*b8/max;
            System.out.println(max);
            System.out.println(min);

    第九道题:

    求一下1000以内的所有的完数。完数 = 一个数如果恰好等于他的因子之和,这个数就称为完数 6 = 1 + 2 + 3 = 6

    答案如下:

            int a9 =0;
            int c9 =0;
            for (int i9=2;i9<=1000;i9++){
                for (int b9=1;b9<i9;b9++){
                    if (i9%b9==0){
                        a9+=b9;
                    }
                }
                if (a9==i9){
                    c9+=a9;
                }
                a9=0;
            }
            System.out.println(c9);

    第十题

    答案如下:

            int a10 = 0;
            int y1=0;
            int y2=0;
            int y3=0;
            int y4=0;
            int y5=0;
            int y6=0;
            int y7=0;
            int y8=0;
            int y9=0;
            int y0=0;
            for (int i10=1;i10<=100000;i10++){
                a10=i10+a10;
                switch (a10%10){
                    case 1:
                        y1++;
                        break;
                    case 2:
                        y2++;
                        break;
                    case 3:
                         y3++;
                         break;
                    case 4:
                        y4++;
                        break;
                    case 5:
                        y5++;
                        break;
                    case 6:
                        y6++;
                        break;
                    case 7:
                        y7++;
                        break;
                    case 8:
                        y8++;
                        break;
                    case 9:
                        y9++;
                        break;
                    case 0:
                        y0++;
                        break;
                }
            }
            System.out.println("1 "+y1);
            System.out.println("2 "+y2);
            System.out.println("3 "+y3);
            System.out.println("4 "+y4);
            System.out.println("5 "+y5);
            System.out.println("6 "+y6);
            System.out.println("7 "+y7);
            System.out.println("8 "+y8);
            System.out.println("9 "+y9);
            System.out.println("10 "+y0);

    看完答案是不是感觉很简单?

    说实在的,我在做的时候把自己都套懵了,有的时候套到哪里都不知道;

    不说了,大家一起再去练练

  • 相关阅读:
    Android四大基本组件介绍与生命周期
    论Android产品高效开发之路
    android工程目录分析
    android推送思路
    android类库
    Android实现应用下载并自动安装apk包
    自定义 Android 对话框 (AlertDialog) 的样式
    Android adb shell 命令详解
    Complexities
    Combination Sum II
  • 原文地址:https://www.cnblogs.com/ma159753/p/13832058.html
Copyright © 2011-2022 走看看