嵌套循环基础练习题

目录

java循环以及循环嵌套练习题

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

 02:求100以内的所有素数(素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除)

 03:随机产生一个1-100之间的整数,看能几次猜中。要求:猜的次数不能超过7次,每次猜完之

后都要提示“大了”或者“小了”。

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

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

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

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

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

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

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

11:A、B、C、D分别为0——9之间的整数,求出满足AB+CD=DA条件的数。    例如:90+09=99

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

13:输出九九乘法表

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

 15:实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个篮球中随机

选择1个组成一注彩票。可以选择买多注。

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

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

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

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

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

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

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

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

24:山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。

* 问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。

     提示:

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

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

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

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

25:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李

白壶中原有多少斗酒?(使用for循环结构编程实现)提示:采用逆向思维分析问题

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

“Flip”,5的倍数就替换为单词“Flop”,既为3的倍数又为5的倍数则替换为单词“FlipFlop”。     

 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

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

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

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

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


java循环以及循环嵌套练习题

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

int sum=0;
		for(int i=0;i<=10;i+=2){
			sum+=i;
			
		}
		System.out.println(sum);

 02:求100以内的所有素数(素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除)

int j;
		int i;

		for (i = 2; i <= 100; i++) {

			for (j = 2; j < i; j++) {

				if (i % j == 0) {
					break;
				}

			}
			if (j == i) {
				System.out.println(i);
			}

		}

 03:随机产生一个1-100之间的整数,看能几次猜中。要求:猜的次数不能超过7次,每次猜完之

后都要提示“大了”或者“小了”。

	Scanner sc =new Scanner(System.in);
		System.out.println("请随机输入一个数,但是不能超过七次");
		
		int random=(int)(Math.random()*100);
		
		for(int i=1;i<=7;i++){
			int num=sc.nextInt();
			
			if(numrandom){
				System.out.println("你猜大了");
			}else if(num==random){
				System.out.println("你猜对了");
			}
			
		}

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

for(int i=100;i<1000;i++){
			int geWei=i%10;
			int shiWei=i/10%10;
			int baiWei=i/100;
			if(Math.pow(geWei, 3)+Math.pow(shiWei, 3)+Math.pow(baiWei, 3)==i){
				System.out.println("水仙花数是"+i);
			}
		}
		

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

for(char i='a';i<'z';i++){
			
				System.out.print(i+" ");
				
	}
		System.out.println();
		for(char i='Z';i>'A';i--){
			System.out.print(i+" ");
		}

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

int count=0;
		int sum=0;
		int sum1=0;
		int sum2=0;
	   for(int i=1;i<=101;i+=2){
		   count++;
		 if(count%2!=0){
			 
           sum1+=i;
			
		 }else{
			 sum2+=i;
		 }
		 
	   }
	   sum=sum1-sum2;
	   System.out.println("1-3+5-7+9-…..101="+sum);
		

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

double sum=0;
		int count=0;
		for(double i=1;i<=100;i++){
			count++;
			if(count%2!=0){
				sum=sum+1/i;
			}else if(count%2==0){
				sum=sum-1/i;
			}
			
		}
	System.out.println(sum);

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

int count=0;
		for(int i=20;i<=80;i++){
			
			if(i%3==0){
				System.out.print(i+" ");
				count++;
				if(count%5==0){
					System.out.println();
				}

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

	int count = 0;
		for (int i = 1000; i <= 2000; i++) {
			if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
				System.out.print(i + " ");
				count++;
				if (count % 4 == 0) {
					System.out.println();
				}
			}
		}

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

    

for(int a=0;a<=9;a++){
            for(int b=0;b<=9;b++){
                if(a+b==12){
                    System.out.println("a+b的组合为"+a+"+"+b);
                }
            }
        }

11:A、B、C、D分别为0——9之间的整数,求出满足AB+CD=DA条件的数。    例如:90+09=99

for(int A=0;A<=9;A++){
			for(int B=0;B<=9;B++){
				for(int C=0;C<=9;C++){
					for(int D=0;D<=9;D++){
						if((A*10+B)+(C*10+D)==(D*10+A)){
							System.out.println(A+","+B+","+C+","+D);
						}
					}
				}
			}	
		}

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

int ran=(int)(Math.random()*10000);
		
		for(int i=0;i<10;i++){
			if(i==ran){
				System.out.println("该数共有 一 位"+"每位分别是:"+i);
			}
		}
		for(int b=10;b<100;b++){
			if(b==ran){
				int geWei=b%10;
				int shiWei=b/10;
				System.out.println("该数共有 两 位"+"每位分别是:"+shiWei+" "+geWei);
			}
		}
	
		for(int c=100;c<1000;c++){
			if(c==ran){
				int geWei=c%10;
				int shiWei=c/10%10;
				int baiWei=c/100;
				System.out.println("该数共有 三 位"+"每位分别是:"+baiWei+" " +shiWei+" "+geWei);
			}
		}
		for(int d=1000;d<10000;d++){
			if(d==ran){
				int geWei=d%10;
				int shiWei=d/10%10;
				int baiWei=d/100%10;
				int qianWei=d/1000;
				System.out.println("该数共有 四 位"+"每位分别是:"+qianWei+" "+baiWei+" " +shiWei+" "+geWei);
			}
		}

13:输出九九乘法表

for (int i = 1; i <= 9; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print(i + "*" + j + "=" + i * j + " ");
				if (i == j) {
					System.out.println();
				}
			}

		}

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

 

for (int i = 1; i <= 3; i++) {
			for(int j=1;j<=3-i;j++){
				System.out.print(" ");
				
			}
			for(int v=1;v<=2*i-1;v++){
				System.out.print("*");
			}
			System.out.println();
			
		}

 嵌套循环基础练习题_第1张图片

 

 

for (int i = 1; i <= 6; i++) {
			//输出每一行前面的空格“ ”
			for (int j = 6-i; j >0; j--) {
				System.out.print(" ");
			}
			//输出每一行的“*”
			for (int k = 2*i+4; k >0; k--) {
				System.out.print("*");
			}
			//换行
			System.out.println();
		}
		
		//下半截图形:外层循环控制行数
		for (int i = 1; i <= 5; i++) {
			//输出每一行前面的空格“ ”
			for (int j = i; j >0; j--) {
				System.out.print(" ");
			}
			//输出每一行的“*”
			for (int k = 16-2*i; k >0; k--) {
				System.out.print("*");
			}
			//换行
			System.out.println();
		}

嵌套循环基础练习题_第2张图片 

for (int i = 1; i <= 9; i++) {
			for(int j=1;j<=9-i;j++){
				System.out.print(" ");
				
			}
			System.out.print("*");
			
			if(i>=2){
				for(int k=1;k<=2*i-3;k++){
					System.out.print(" ");
				}
				System.out.print("*");
			}
			
			
			System.out.println();
			
		}
		for(int i=1;i<=8;i++){
			for(int j=1;j<=i;j++){
				System.out.print(" ");
				
			}
			System.out.print("*");
			if(i<8){
			for(int k=1;k<=13-(i*2-2);k++){
			
					 System.out.print(" ");
					 
				 }
				System.out.print("*"); 	
			}
			
			System.out.println();
		}

 

嵌套循环基础练习题_第3张图片 

 

for(int k=1;k<=15;k++){
			System.out.print("*");
		}
		System.out.println();
		for(int i=1;i<=7;i++){
			for(int j=1;j<=8-i;j++){
				System.out.print("*");
			}
			for(int h=1;h<=2*i-1;h++){
				System.out.print(" ");
				
			}
			
				for(int j=1;j<=8-i;j++){
					System.out.print("*");
				}
			
			System.out.println();
		}

 15:实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个篮球中随机

选择1个组成一注彩票。可以选择买多注。

Scanner sc = new Scanner(System.in);
		
		System.out.println("输入你要购买的彩票注数:");
		int num = sc.nextInt();

		for (int i = 1; i <= num; i++) {
			//随机获取一个[num1,num2)之间的int类型的数(num2>num1):(int)(Math.random()*(num2-num1)+num1);
			
			// 输出蓝球,蓝球只需要一个[1,17)
			int blueBall = (int) (Math.random() * 16 + 1);
			// 输出红球,红球需要6个[1,34)
			int redBall1 = (int) (Math.random() * 33 + 1);
			int redBall2 = 0;
			int redBall3 = 0;
			int redBall4 = 0;
			int redBall5 = 0;
			int redBall6 = 0;
			while (true) {
				int redBall = (int) (Math.random() * 33) + 1;
				if (redBall6 != 0) {// redBall6不等于0说明redBall6已经获得值了
					break;// redBall6获得值了就退出循环
				}
				if (redBall != redBall1 && redBall2 == 0) {
					redBall2 = redBall;
				} else if (redBall != redBall1 && redBall != redBall2
						&& redBall3 == 0) {
					redBall3 = redBall;
				} else if (redBall != redBall1 && redBall != redBall2
						&& redBall != redBall3 && redBall4 == 0) {
					redBall4 = redBall;
				} else if (redBall != redBall1 && redBall != redBall2
						&& redBall != redBall3 && redBall != redBall4
						&& redBall5 == 0) {
					redBall5 = redBall;
				} else if (redBall != redBall1 && redBall != redBall2
						&& redBall != redBall3 && redBall != redBall4
						&& redBall != redBall5 && redBall6 == 0) {
					redBall6 = redBall;
				}
			}

			System.out.println(redBall1 + " " + redBall2 + " " + redBall3 + " "
					+ redBall4 + " " + redBall5 + " " + redBall6 + "---"
					+ blueBall);
		}

		sc.close();

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

int count = 0;
		for (int i = 1; i <= 100; i++) {
			if (i % 5 != 0) {
				System.out.print(i + " ");
				count++;
			}
			if (count % 5 == 0) {
				System.out.println();
			}
		}

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

int a1=1;
		int a2=1;
		int a3;
		System.out.print(a1+" "+a2+" ");
		for(int i=3;i<=20;i++){
			a3=a2+a1;
			a1=a2;
			a2=a3;
			System.out.print(" "+a3+" ");
		}

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

	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));
		sc.close();

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

int shu=(int)(Math.random()*55+65);
		
		while(true){
			if(shu>=91&&shu<97){
				
				continue;
			}
		
			
			
				if(shu>=65&&shu<=90){
				
					char ziMu=(char)shu;
					System.out.println(ziMu);
					if(ziMu>='A'&&ziMu<='Z'){
						System.out.println("yes");
						break;
					}
				}
				if(shu>=97&&shu<=120){
					char ziMu=(char)shu;
					System.out.println(ziMu);
					
					if(ziMu>='a'&&ziMu<='z'){
						System.out.println("no");
						break;
					}
				}
			}

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

	int shu=(int)(Math.random()*122);
		char ziFu=(char)shu;
		System.out.println(ziFu);
		if(ziFu>=65&&ziFu<=90){
			System.out.println("大写字母");
		}else if(ziFu>=97&&ziFu<=122){
			System.out.println("小写字母");
		}else{
			System.out.println("其他字符");
		}

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

int count = 0;
		for (int i = 100; i <= 1000; i++) {
			if (i % 5 == 0 && i % 6 == 0) {
				System.out.print(i +" ");
				count++;
				if (count % 5 == 0) {
					System.out.println();
				}
			}
			
			
		}

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

double sum=0;
            for(double i=3;i<=99;i+=2){
            	sum+=((i-2)/i);
            	   
            }		
            System.out.println(sum);

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

	// 23:输出100以内的所有素数,每行显示5个;并求和。
		int count=0;
			for (int i = 2; i <= 100; i++) {
				
				for (int j = 2; j <= i; j++) {
					if (i % j != 0 || i == 2) {
						System.out.print(i+" ");
						count++;
						if(count%5==0){
							System.out.println();
						}
					}
					break;
				}
			}

24:山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。

* 问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。

     提示:

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

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

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

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

int water=15;
		int l=0;
		while(water<50){
			water+=5;
			l++;
		}
		System.out.println("小和尚要挑:"+l+"次水");
		

25:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李

白壶中原有多少斗酒?(使用for循环结构编程实现)提示:采用逆向思维分析问题

​
double alcohol = 0;
		
		for(int i =0;i<5;i++){
			alcohol+=1;
			alcohol/=2;
		}

		System.out.println("李白壶中原有"+alcohol+"斗酒");

​


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

“Flip”,5的倍数就替换为单词“Flop”,既为3的倍数又为5的倍数则替换为单词“FlipFlop”。

     

for (int i = 1; i <= 100; i++) {
			if (i % 3 == 0) {
				System.out.println("Flip");
			}
			if (i % 5 == 0) {
				System.out.println("Flop");
			}
			if (i % 3 == 0 && i % 5 == 0) {
				System.out.println("FlipFlop");
			}

		}


 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 sc = new Scanner(System.in);
		System.out.println("请输入一个十二位的数字");
		long shu = sc.nextLong();
		long shuZi = 0;
		int ou = 0;
		int ji = 0;
		int he=0;
		int xiaoYan=0;
		long shuRu=shu;
         
		for (int i = 1; i <= 12; i++) {

			shuZi = shu % 10;
			shu=shu/10;
			
			if (shuZi % 2 == 0) {
				ou += shuZi;
				
			}
			if (shuZi % 2 != 0) {
				
				
				ji += shuZi;
				
			}

		}
		System.out.println("偶数和:"+ou);
		System.out.println("奇数和:"+ji);
		he=ou+3*ji;
		int geWei=he%10;
		xiaoYan=10-geWei;
		if(xiaoYan==0){
			System.out.println(shuRu+""+0);
		}else{
		System.out.println(shuRu+""+xiaoYan);
		}
		

​

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

Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个数");
		int a = sc.nextInt();
		System.out.println("请输入第二个数");
		int b = sc.nextInt();
		int t;
		
		if(a>b){
			t=a;
			a=b;
			b=t;
		}
//		最大公约数是

		for (int i = a; i >= 0; i--) {
			if (a % i == 0 && b % i == 0) {
				System.out.println("最大公约数是:" + i);
				break;
			}else{
				System.out.println("没有最大公约数");
				break;
			}

		}
		
//		最小公倍数是
		if(b%a==0){
			System.out.println("最小公倍数是:"+b);
		}else{
			System.out.println("最小公倍数是:"+a*b);
		}
		


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

int count = 0;
		for (int a = 0; a <= 100; a++) {
			for (int b = 0; b <= 100; b += 5) {
				for (int c = 0; c <= 100; c += 10) {
					if (a + b + c == 100) {
						count++;
					}
				}
			}
		}
		System.out.println("有" + count + "种兑换方法");


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


  

int sum=0;
		for (int shiYuan = 1; shiYuan <=9; shiYuan++) {
			
			for (int wuYuan = 1; wuYuan <20; wuYuan++) {
				
				for (int yiYuan = 1; yiYuan <50-wuYuan-shiYuan; yiYuan++) {
					
					if (shiYuan*10+wuYuan*5+yiYuan==100) {
                      sum++;
					}
				}
			}
		}
		System.out.println("共有"+sum+"种方案");

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

 int count=0;
      int sum=0;
      int sheng=50%3;
        for(int i=50;i>sheng;i-=2){
            
            count+=3;
            
        }
        
        sum=count+sheng;
        System.out.println(sum);
        
        

你可能感兴趣的:(java,蓝桥杯,职场和发展)