Java基础习题及参考代码(循环结构)

二白整理了一些关于循环结构的习题,本人也逐个完成,有需要的同学自取,答案仅供参考。

01:求10以内的偶数的和。

package practise;

public class Demo01 {

public static void main(String[] args) {
    //    01:求10以内的偶数的和。
    int x=0,sum=0 ;
    while (x<10){
        sum +=x;
        x++;
        x++;
    }
    System.out.println(sum);



}
}

02:求100以内的所有素数

(素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除)

package practise;

public class Demo02 {
    public static void main(String[] args) {
//        02:求100以内的所有素数
//(素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除)

        int i = 1,j =1;
        for (i=2;i<100;i++){
            for (j=2;j<=i;j++){
                if((i % j) == 0 && (i !=j)){
                    System.out.println(i);
                    break;
                }
            }


        }



    }
}

03:随机产生一个1-100之间的整数,看能几次猜中。要求:猜的次数不能超过7次,每次猜完之后都要提示“大了”或者“小了”。

package practise;

import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args) {
//        03:随机产生一个1-100之间的整数,看能几次猜中。要求:猜的次数不能超过7次,每次猜完之后都要提示“大了”或者“小了”。
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数字");
        int y = (int)(Math.random()*99 +1);
        System.out.println(y);
        int x = scanner.nextInt();

        int i = 0;
        while (i<7){
            if (x==y){
                System.out.println("猜对了");
                break;
            } else if (x>y) {
                System.out.println("猜大了");
                i++;
                x = scanner.nextInt();
            }else {
                System.out.println("猜小了");
                i++;
                x = scanner.nextInt();
            }

        }
        if (i>=7){
            System.out.println("猜的次数过多,捞的一");
        }


    }
}

04:写一个方法,此方法实现输出100-999之间的水仙花数。

package practise;

public class Demo04 {
    //    04:写一个方法,此方法实现输出100-999之间的水仙花数。
    public static void main(String[] args) {
        for (int sum = 100; sum <= 999; sum++) {
            int a = sum / 100;
            int b = (sum - a * 100) / 10;
            int c = sum - a * 100 - b * 10;
            if (a * a * a + b * b * b + c * c * c == sum)
                System.out.println(sum);
        }
    }
}

05:输出小写的a-z以及大写的在Z—A

package practise;

public class Demo05 {
    public static void main(String[] args) {
//        05:输出小写的a-z以及大写的在Z—A
        char litter = 97;
        char big = 65;
        for (litter = 97; litter <123;litter++){
            System.out.print(litter);
        }
        for (big = 65; big <91;big++){
            System.out.print(big);
        }




    }
}

06:求出1-3+5-7+9-…..101的和

package practise;

public class Demo06 {
    public static void main(String[] args) {
//        06:求出1-3+5-7+9-…..101的和
        int i =3;
        int j = 1;
        while (i<=101){
            int k=i+2;
            j=j-i+k;
            i=i+4;
        }
        System.out.println(j);




    }
}

07:求出1-1/2+1/3-1/4…..1/100的和

package practise;

public class Demo07 {
    public static void main(String[] args) {
//        07:求出1-1/2+1/3-1/4…..1/100的和


        double j = 0;
        for (int i =1;i<=98;i+=2){
            j= j+(-1.0/(i+1)) +(1.0/(i+2));
        }
        System.out.println(j+1);



        /*double num = 1;
        // 定义个变量用来存储计算结果
        double sum = 0;
        // 设i为分母,分母的值范围从1-100,并且分母可以用来表示数据所处的位置,如果分母为奇数,说明数字也处在奇数位置,进行加法运算,如果分母为偶数,说明数字位置在偶数位置,进行减法运算
        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                sum -= num / i; // sum=sum-num/i;
            } else {
                sum += num / i; // sum=sum+num/i;
            }
        }
        System.out.println("1-1/2+1/3-1/4…..1/100的和是:" + sum);*/



    }

}

08:输出20-80之间能被3整除的整数,每5个一行

package practise;

public class Demo08 {
    public static void main(String[] args) {
//        08:输出20-80之间能被3整除的整数,每5个一行
        int k=0;
        for (int i =20;i<=80;i++){
            if (i%3==0){
                System.out.print(i+" ");
                k++;
            }
            if (k==5){
                System.out.println();
                k=0;
            }
        }




    }
}

09:打印出1000-2000年中所有的闰年,并以每行四个数的形式输出

package practise;

public class Demo09 {
    public static void main(String[] args) {
//        09:打印出1000-2000年中所有的闰年,并以每行四个数的形式输出
//        普通闰年:能被 4 整除但不能被 100 整除的年份为普通闰年。
//        世纪闰年:能被 400 整除的为世纪闰年。
        for (int i =1000;i<=2000;i++){
            if (i%400==0){
                System.out.println(i);
            }else if (i%4 == 0 && i%100 !=0){
                System.out.println(i);
            }
        }






    }
}

10:定义两个整数a、b,a、b的取值范围在0-9之间,给出所有符合a+b=12的组合。

package practise;

public class Demo10 {
    public static void main(String[] args) {
//        10:定义两个整数a、b,a、b的取值范围在0-9之间,给出所有符合a+b=12的组合。

        int a,b;
        for (a=0;a<10;a++){
            for (b=0;b<10;b++){
                if (a+b==12){
                    System.out.println("a=:"+a+",b=:"+b);
                }
            }
        }







    }
}

11:ABCD分别为0——9之间的整数,求出满足AB+CD=DA条件的数。

    例如:90+09=99

package practise;

public class Demo11 {
    public static void main(String[] args) {
//        11:A、B、C、D分别为0——9之间的整数,求出满足AB+CD=DA条件的数。
//        例如:90+09=99
        int a,b,c,d;
        for (a=0;a<10;a++){
            for (b=0;b<10;b++){
                for (c=0;c<10;c++){
                    for (d=0;d<10;d++){
                        if (a*10+b+c*10+d==d*10+a){
                            System.out.println("a=:"+a+" b=:"+b +" c=:"+c +" d=:"+d);
                        }
                    }
                }
            }
        }





    }
}

12:随机生成一个五位以内的数,然后输出该数共有多少位,每位分别是什么

package practise;

public class Demo12 {
    public static void main(String[] args) {
//        12:随机生成一个五位以内的数,然后输出该数共有多少位,每位分别是什么
        double x =  Math.random()*99999;
        int a = (int) x;
        if (a<10){
            System.out.println("一位"+a);
        } else if (a<100) {
            int gewei = a%10;
            int shiwei = a/10;
            System.out.println("两位,个位和十位分别是"+gewei+"、"+shiwei);
        } else if (a<1000) {
            int gewei = a%100%10;
            int shiwei = a%100/10;
            int baiwei = a/100;
            System.out.println("三位,个位、十位和百位分别是"+gewei+"、"+shiwei+"、"+baiwei);
        } else if (a<10000) {
            int gewei = a%1000%100%10;
            int shiwei = a%1000%100/10;
            int baiwei = a%1000/100;
            int qianwei = a/1000;
            System.out.println("三位,个位、十位、百位和千位分别是"+gewei+"、"+shiwei+"、"+baiwei+"、"+qianwei);
        }else {
            int gewei = a%10000%1000%100%10;
            int shiwei = a%10000%1000%100/10;
            int baiwei = a%10000%1000/100;
            int qianwei = a%10000/1000;
            int wanwei = a/10000;
            System.out.println("三位,个位、十位、百位和千位分别是"+gewei+"、"+shiwei+"、"+baiwei+"、"+qianwei+"、"+wanwei);
        }


    }
}

13:输出九九乘法表

package practise;

public class Demo13 {
    public static void main(String[] args) {
//        13:输出九九乘法表
        int i =1,j=1;
        for (i=1;i<10;i++){
            for (j=1;j<=i;j++){
                int cheng = i*j;
                System.out.print(i+"*"+j+"="+cheng+"\t");
            }
            System.out.println();
        }
    }
}

14:使用Java实现输出如下图形。

package practise;

public class Demo14$1 {
    public static void main(String[] args) {
//        14:使用Java实现输出如下图形。(第一个)

        int i,j,k,l,m=2;
        for(i=1;i<=6;i+=2){
            for (l=m;l>=1;l--){
                System.out.print("\t");

            }
            m--;

            for (j=1,k=i;j<=i && k >= 0;j++,k--){
                System.out.print("*\t");
            }
            System.out.println();
        }

    }
}
package practise;

public class Demo14$2 {
    public static void main(String[] args) {
//        14:使用Java实现输出如下图形。(第二个)
        int i,j,l,m=5,n=5,o=5;

        for (i=0;i<6;i++){//上部分
            for (l=m;l>=1;l--){//空格的个数
                System.out.print(" ");

            }
            m--;
            for (j=1;j<=(6+i);j++){//中间*的个数

                System.out.print("*");

            }
            for (int k =0;k<i;k++){//结尾新增加的*的个数
                System.out.print("*");
            }
            System.out.println();
        }

        for (i=0;i<5;i++){//下部分
            for (l=n;l<=5;l++){//空格的个数
                System.out.print(" ");

            }
            n--;
            for (j=1;j<=(9-i);j++){//中间*的个数
                System.out.print("*");

            }
            for (int k =0;k<o;k++){//结尾新增加的*的个数
                System.out.print("*");
            }
            o--;
            System.out.println();
        }


    }
}
package practise;

public class Demo14$3 {
    public static void main(String[] args) {
//        14:使用Java实现输出如下图形。(第三个)
        int l = 7,m=1;
        int n =7,o=15;
        System.out.println("         *");//第一行
        for (int j=0;j<9;j++){
            for (int i =l;i>=0;i--){//第一部分空格个数
                System.out.print(" ");
            }
            l--;
            System.out.print("*");
            for (int k=1;k<=m;k++){//第二部分空格个数
                System.out.print(" ");

            }
            m+=2;
            System.out.print("*");
            System.out.println();
        }

        for (int j=0;j<8;j++){
            for (int i =n;i<=7;i++){//第一部分空格个数
                System.out.print(" ");
            }
            n--;
            System.out.print("*");
            for (int k=1;k<=o;k++){//第二部分空格个数
                System.out.print(" ");

            }
            o-=2;
            System.out.print("*");
            System.out.println();
        }
        System.out.println("         *");//最后一行






    }
}
package practise;

public class Demo14$4 {
    public static void main(String[] args) {
//        14:使用Java实现输出如下图形。(第四个)
        int l=0;
        for (int i =1;i<=8;i++){
            for (int j =i;j<=7;j++){//左侧*个数

                System.out.print("*");
            }
            while (i>1){//确保第一格没有空格
                for (int k =2;k<i*2-1;k++){//中间空格个数
                    System.out.print(" ");
                }
                break;
            }


            for (int j =i;j<=7;j++){//右侧*个数

                System.out.print("*");
            }

            System.out.println();
        }

    }
}

15:实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个篮球中随机选择1个组成一注彩票。可以选择买多注。

package practise;

import java.util.Scanner;

public class Demo15 {
    public static void main(String[] args) {
//        15:实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个蓝球中随机选择1个组成一注彩票。可以选择买多注。
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要买的注数");
        int num = scanner.nextInt();
        for (int i =1;i<=num;i++){
            int  red1 = (int) (Math.random()*36+1);
            int blue =(int) (Math.random() * 15 + 1);

            int  red2 = (int) (Math.random()*36+1);
            while(red2 == red1){
                red2 = (int) (Math.random()*36+1);
            }
            int  red3 = (int) (Math.random()*36+1);
            while(red3 == red2 || red3 == red1){
                red3 = (int) (Math.random()*36+1);
            }
            int  red4 = (int) (Math.random()*36+1);
            while(red4 == red1||red4==red2||red4==red3){
                red4 = (int) (Math.random()*36+1);
            }
            int  red5 = (int) (Math.random()*36+1);
            while(red5 == red1||red5==red2||red5==red3||red5==red4){
                red5 = (int) (Math.random()*36+1);
            }
            int  red6 = (int) (Math.random()*36+1);
            while(red6 == red1||red6==red2||red6==red3||red6==red4||red6==red5){
                red6 = (int) (Math.random()*36+1);
            }

            System.out.print(red1+" ");
            System.out.print(red2+" ");
            System.out.print(red3+" ");
            System.out.print(red4+" ");
            System.out.print(red5+" ");
            System.out.print(red6+" ");
            System.out.print(blue+" ");
            System.out.println();


        }











    }
}

16:输出1-100之间的不能被5整除的数,每5个一行。

package practise;

public class Demo16 {
    public static void main(String[] args) {
//        16:输出1-100之间的不能被5整除的数,每5个一行。
        int j = 0;
        for (int i =1;i<=100;i++){
            while (j<4){ //四个数循环
                if (i%5!=0){//判断能否被5整除
                    System.out.print(i+"\t");
                    j++;
                    i++;
                }
            }
            if (i<100){
                System.out.println("\n");
                j=0;

            }
        }






    }
}

17:输出斐波那契数列数列的前20项

package practise;

public class Demo17 {
    public static void main(String[] args) {
//        17:输出斐波那契数列数列的前20项
//        这个数列从第3项开始 ,每一项都等于前两项之和
        int a1 = 1;
        int a2 = 1;
        int a3 = 3;
        System.out.print(a1+"、"+a2+"、"+a3+"、"); //输出前三个
        for (int i = 0;i<5;i++){//输出中间15个
            a1 = a2 + a3;
            a2 = a3 + a1;
            a3 = a1 + a2;
            System.out.print(a1+"、"+a2+"、"+a3+"、");
        }
        a1 = a2 + a3;
        a2 = a3 + a1;
        System.out.print(a1+"、"+a2);//输出最后两个
    }
}

18:输出一个整数的二进制数、八进制数、十六进制数。

package practise;

import java.util.Scanner;

public class Demo18 {
    public static void main(String[] args) {
//        18:输出一个整数的二进制数、八进制数、十六进制数。
// TODO: 2024/4/3 不用函数怎么写 
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个整数:");
            int num = sc.nextInt();
            System.out.println("你输入的整数" + num + "转换为二进制为:" + Integer.toBinaryString(num));
            System.out.println("你输入的整数" + num + "转换为八进制为:" + Integer.toOctalString(num));
            System.out.println("你输入的整数" + num + "转换为十六进制为:" + Integer.toHexString(num));

    }
}

19:随机产生一个字母,如果是大写字母则输出“yes”,否则输出“no”

package practise;

import java.util.Random;
import java.util.Scanner;

public class Demo19 {
    public static void main(String[] args) {
//        19:随机产生一个字母,如果是大写字母则输出“yes”,否则输出“no”
        /*double y = Math.random()*25+65;//大写字母ASCII码表
        double n = Math.random()*25+97;//小写字母ASCII码表
        double x = ;
        char Y = (char) y;
        char N = (char) n;

        if (x == Y){
            System.out.println("yes");
        } else if (x==N) {
            System.out.println("no");
        }*/


        Random random = new Random();
        char letter = (char) (random.nextInt(57) + 'A');
        System.out.println("随机产生的字母是:" + letter);
        if (letter >= 'a' && letter <= 'z') {
            System.out.println("yes!");
        } else if (letter >= 'A' && letter <= 'Z') {
            System.out.println("no!");
        }



    }
}

20:随机产生一个字符,判断:如果为大写字母则输出“大写字母”;如果为小写字母则输出“小写字母”;否则怎输出“其他字符”;

package practise;

import java.util.Random;

public class Demo20 {
    public static void main(String[] args) {
//        20:随机产生一个字符,判断:如果为大写字母则输出“大写字母”;
//        如果为小写字母则输出“小写字母”;否则怎输出“其他字符”;
        Random random = new Random();
        char letter = (char) (random.nextInt(127));
        System.out.println("随机产生的字母是:" + letter);
        if (letter >= 'a' && letter <= 'z') {
            System.out.println("小写字符");
        } else if (letter >= 'A' && letter <= 'Z') {
            System.out.println("大写字符");
        }else {
            System.out.println("其他字符");
        }






    }
}

21:求100到1000之间的所有能被5和6整除的整数,每行显示5个

package practise;

public class Demo21 {
    public static void main(String[] args) {
//        21:求100到1000之间的所有能被5和6整除的整数,每行显示5个
        int j =0;
        for (int i =100 ; i<=1000;i++){
                if (i%30==0){ //能被5和6整除
                    for (j =0;j < 5;j++) {//5个数
                    System.out.print(i+"\t");
                }
            }
            if (j==5){//五个数后换行
                System.out.println("\n");
                j=0;
            }
        }






    }
}

22:求和:1/3+3/5+5/7+7/9+………..+97/99

package practise;

public class Demo22 {
    public static void main(String[] args) {
//        22:求和:1/3+3/5+5/7+7/9+………..+97/99
        double i=1.0;
        double sum =0;
        for (i=1;i<=93;i+=4){//除了最后一个
            double j=i+2.0;
            sum = sum + (i/j)+ ((i+2)/(j+2));
        }
        System.out.println(sum+97.0/99.0);//加上最后一个





    }
}

23:输出100以内的所有素数,每行显示5个;并求和。

package practise;

public class Demo23 {
    public static void main(String[] args) {
//        23:输出100以内的所有素数,每行显示5个;并求和。
        int i = 1,j =1;
        int k = 0;
        for (i=2;i<100;i++){
            for (j=2;j<=i;j++){
                if((i % j) == 0 && (i !=j)){
                        System.out.print(i+"\t");
                        k++;
                    if (k==5){
                        k=0;
                        System.out.println("\n");
                    }
                    break;//跳出当前for循环,回到最开始for循环
                }
                }


            }


        }



    }

24:山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。

提示:

(1) 用整型变量water表示水缸里的水“int water = 15;”。

(2) 用整型变量l表示小和尚下山挑水的次数“int l = 0;”。

(3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。

(4) 套用while循环(或do-while循环)写出代码。

package practise;

public class Demo24 {
    public static void main(String[] args) {
//        24:山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
//        提示:
//        (1) 用整型变量water表示水缸里的水“int water = 15;”。
//        (2) 用整型变量l表示小和尚下山挑水的次数“int l = 0;”。
//        (3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。
//        (4) 套用while循环(或do-while循环)写出代码。

        int water1 = 15;
        int water = 0;
        int l =0;
        while (water !=50){
            l++;
            water = water1 + l*5;
        }
        System.out.println(l);












    }
}

25:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)

提示:采用逆向思维分析问题。

package practise;

public class Demo25 {
    public static void main(String[] args) {
//        25:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,
//        五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?
//        (使用for循环结构编程实现)
//        提示:采用逆向思维分析问题。
        double wine=0;
        for(int a=1;a<=5;a++){
            wine+=1;
            wine=wine/2;
        }
        System.out.println("共有"+wine+"斗酒");
    }




}

26:开发一个标题为“FlipFlop”的游戏应用程序。它从1计数到100,遇到3的倍数就替换为单词“Flip”,5的倍数就替换为单词“Flop”,既为3的倍数又为5的倍数则替换为单词“FlipFlop”。

package practise;

public class Demo26 {
    public static void main(String[] args) {
//        26:开发一个标题为“FlipFlop”的游戏应用程序。它从1计数到100,遇到3的倍数就替换为单词“Flip”,
//        5的倍数就替换为单词“Flop”,既为3的倍数又为5的倍数则替换为单词“FlipFlop”。
        int i=1;
        for (i=1; i<=100;i++){
            if (i%3==0){
                System.out.println(i+"Flip");
            } else if (i%5==0) {
                System.out.println(i+"Flop");
            } else if (i%15==0) {
                System.out.println(i+"FlipFlop");
            }else {
                System.out.println(i+"捞的一");
            }
        }





    }
}

27:生成13位条形码

Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码。

例如:690123456789

计算其校验码的过程为:

@前十二位的奇数位和6+0+2+4+6+8=26

@前十二位的偶数位和9+1+3+5+7+9=34

@将奇数和与偶数和的三倍相加26+34*3=128

@取结果的个位数:128的个位数为8

@用10减去这个个位数10-8=2

所以校验码为2

(注:如果取结果的个位数为0,那么校验码不是为10(10-0=10),而是0)

实现方法ean13()计算验证码,输入12位条码,返回带验证码的条码。

例:输入:692223361219输出:6922233612192

package practise;

import java.util.Scanner;

public class Demo27 {
    public static void main(String[] args) {
        /*27:生成13位条形码
        Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码。
        例如:690123456789
        计算其校验码的过程为:
        @前十二位的奇数位和6+0+2+4+6+8=26
        @前十二位的偶数位和9+1+3+5+7+9=34
        @将奇数和与偶数和的三倍相加26+34*3=128
        @取结果的个位数:128的个位数为8
        @用10减去这个个位数10-8=2
        所以校验码为2
(注:如果取结果的个位数为0,那么校验码不是为10(10-0=10),而是0)
        实现方法ean13()计算验证码,输入12位条码,返回带验证码的条码。
        例:输入:692223361219输出:6922233612192*/
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入前十二位条码");
        String code = scanner.next();
        int c1=0,c2=0,sum,check;
        for(int i=0;i<12;i+=2){
            //奇数位数字求和
            c1+=(code.charAt(i)-'0');//数字字符-数字字符=整数
            //偶数位数字求和
            c2+=(code.charAt(i+1)-'0');
        }
        sum=c1+c2*3;
        check=(10-sum%10)%10;
        System.out.println(code+""+check);













    }
}

28:求两个整数的最大公约数和最小公倍数

package practise;

import java.util.Scanner;

public class Demo28 {
    public static void main(String[] args) {
//        28:求两个整数的最大公约数和最小公倍数

        int maxYue = 0;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入两个整数");
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        if (a < b) {
            for (int i = 1; i <= a; i++) {
                if (b % i == 0 && a % i == 0) {
                    maxYue = i;
                }

            }
        } else {
            for (int i = 1; i <= b; i++) {
                if (b % i == 0 && a % i == 0) {
                    maxYue = i;
                }

            }

        }
        System.out.println("最大公约数是:"+maxYue);

        int minBei=0;
        if (a < b) {
            for (int i = 1; i <= a*b; i++) {
                if (i % b == 0 && i % a  == 0) {
                    minBei = i;
                    break;
                }

            }
        } else {
            for (int i = 1; i <= b; i++) {
                if (i % b == 0 && i % a  == 0) {
                    minBei = i;
                    break;
                }

            }

        }
        System.out.println("最小公倍数是:"+minBei);




    }
}

29:将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?

package practise;

public class Demo29 {
    public static void main(String[] args) {
//        29:将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?
        int x=1;
        int y = 5;
        int z = 10;
        int all=0;
        int j,k,l;
            for (j=0;j<=100;j++){
                x=1*j;
                for (k=0;k<=100;k++){
                    y=5*k;
                    for (l=0;l<=100;l++){
                        z=10*l;
                        all=x+y+z;
                        while(all==100){
                            System.out.println(j+","+k+","+l);
                            break;
                        }

                    }
                }
            }









    }
}

30:用100元人民币兑换10元,5元,1元的纸币(每种都要有)共50张,计算有多少种兑换方案

package practise;

public class Demo30 {
    public static void main(String[] args) {
//        30:用100元人民币兑换10元,5元,1元的纸币(每种都要有)共50张,
//        计算有多少种兑换方案
        int x=1;
        int y = 5;
        int z = 10;
        int all=0;
        int j,k,l,sum;
        for (j=0;j<=100;j++){
            x=1*j;
            for (k=0;k<=100;k++){
                y=5*k;
                for (l=0;l<=100;l++){
                    z=10*l;
                    all=x+y+z;
                    sum = j+k+l;
                    while(all==100&&sum==50){
                        System.out.println(j+","+k+","+l);
                        break;
                    }

                }
            }
        }
    }
}

31:设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?

package practise;

public class Demo31 {
    public static void main(String[] args) {
//        31:设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
        int a = 50;//总
        int b = 50/3;//换的饮料个数(多余空瓶)
        int d = 50%3;//多的空瓶个数
        int c = 0;
        while ((b+d)>=3){
            c=c+b;
            b= (b+d)/3 ;
            d = b%3;

        }
        System.out.println(a+c);
    }
}


  • 15
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值