Java之循环练习2

吐槽O(∩_∩)O:由于前几天电脑坏了,除了在弄电脑的同时又在练习科目三了,又是晒了三天网鱼都没打了。计划还是赶不上变化,真的是让人乱了节拍啊。咔!吐槽完毕,让我们的循环练习继续。

练习一:一个人很倒霉,不小心打碎了一位妇女的一篮子鸡蛋。为了赔偿便询问篮子里有多少鸡蛋。那妇女说,她也不清楚,只记得每次拿两个则剩一个,每次拿3个则剩2个,每次拿5个则剩4个,若每个鸡蛋1元,请你帮忙编程,计算最少应赔多少钱? 要求:用循环语句实现,直接打印出结果不给分。

package com.cdp.project;

public class task1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 使用穷举法去一一尝试,看能不能满足条件
		  boolean flag = true; 
		  // 初始化鸡蛋个数 
		  int n = 1; 
		  // 满足条件就借宿循环flag=false;
		  while (flag){
			if (n % 2 == 1 & n % 3 == 2 && n % 5 == 4) {
				flag = false;
			}
			// 改变n的值 n++;
			n++;
		}
		System.out.println("应赔" + (n - 1) + "块钱");
	}

	/**方法二:
	 * int n = 1; 
	 * while (true) {
	 * 	 if (n % 2 == 1 & n % 3 == 2 && n % 5 == 4) {
	 * 	break; 
	 * }
	 *  n++; 
	 *  } System.out.println("应赔" + n + "块钱");
	 */
}

run:

应赔29块钱

 练习二:

从键盘接收一个整数N,统计出1~N之间能被7整除的整数的个数,以及这些能被7整除的数的和。

屏幕提示样例: 请输入一个整数:20

 1~20之间能被7整除的数的个数:2

1~20之间能被7整除的所有数之和:21

要求:整数N由键盘输入,且2 ≤ N ≤1000。

package com.cdp.project;

import java.util.Scanner;

public class task3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner s = new Scanner(System.in);
		System.out.println("请输入一个正整数:");
		int n = s.nextInt();
		// 计算个数
		int count = 0;
		// 求和
		int sum = 0;
		for (int i = 0; i <= n; i++) {
			if (i % 7 == 0) {
				count++;
				sum = sum + i;
			}
		}
		System.out.println("1~20之间能被7整除的数的个数:" + count);
		System.out.println("1~20之间能被7整除的所有数之和:" + sum);
	}

}

例如,我们就输入18运行所得结果为:

请输入一个正整数:
18
1~20之间能被7整除的数的个数:3
1~20之间能被7整除的所有数之和:21

练习3:打印菱形,这个我们都不陌生。

下面,我们从键盘输入一个整数N,打印出有N*2-1行的菱形。

package com.cdp.project;

import java.util.Scanner;

public class task4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner s = new Scanner(System.in);
		System.out.println("请输入一个正整数N来打印菱形:");
		int N = s.nextInt();
		for (int i = 1; i <= N; i++) {
			// 第一行
			// 输出空格
			for (int j = 1; j <= N - i; j++) {
				System.out.print(" ");
			}
			// 输出星号
			for (int j = 1; j <= 2 * i - 1; j++) {
				System.out.print("*");
			}
			// 换行
			System.out.println();
		}
		// 打印倒行
		// 倒三角形开始时为最大值N-i

		for (int i = N - 1; i >= 1; i--) {
			// 输出空格
			for (int j = 1; j <= N - i; j++) {
				System.out.print(" ");
			}
			// 输出星号
			for (int j = 1; j <= 2 * i - 1; j++) {
				System.out.print("*");
			}
			// 换行
			System.out.println();
		}

	}

}

eg:我们就输入个20来看看效果:

请输入一个正整数N来打印菱形:
20
                   *
                  ***
                 *****
                *******
               *********
              ***********
             *************
            ***************
           *****************
          *******************
         *********************
        ***********************
       *************************
      ***************************
     *****************************
    *******************************
   *********************************
  ***********************************
 *************************************
***************************************
 *************************************
  ***********************************
   *********************************
    *******************************
     *****************************
      ***************************
       *************************
        ***********************
         *********************
          *******************
           *****************
            ***************
             *************
              ***********
               *********
                *******
                 *****
                  ***
                   *

  

  

不努力,还要青春干什么?
原文地址:https://www.cnblogs.com/caidupingblogs/p/5880346.html