吐槽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
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*********************
***********************
*************************
***************************
*****************************
*******************************
*********************************
***********************************
*************************************
***************************************
*************************************
***********************************
*********************************
*******************************
*****************************
***************************
*************************
***********************
*********************
*******************
*****************
***************
*************
***********
*********
*******
*****
***
*