目录
练习21:求100到1000之间的所有能被5和6整除的整数,每行显示5个
练习22:求和:1/3+3/5+5/7+7/9+………..+97/99
练习24:通过编程解决小和尚要挑几次水才可以把水缸挑满的问题
(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码规则:第十三位数字是前十二位数字经过计算得到的校验码
练习29:将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?
练习30:用100元人民币兑换10元,5元,1元的纸币(每种都要有),计算有多少种兑换方案
练习31:设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
练习21:求100到1000之间的所有能被5和6整除的整数,每行显示5个
/*
* 练习21:求100到1000之间的所有能被5和6整除的整数,每行显示5个
*/
public static void main(String[] args) {
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();
}
}
i++;
}
}
练习22:求和:1/3+3/5+5/7+7/9+………..+97/99
/*
* 练习22:求和:1/3+3/5+5/7+7/9+………..+97/99
*/
public static void main(String[] args) {
double sum = 0;
for (double i = 1; i <= 97; i += 2) {
sum = sum + i / (i + 2);
}
System.out.println(sum);
}
/*
* 练习22:求和:1/3+3/5+5/7+7/9+………..+97/99
*/
public static void main(String[] args) {
double sum = 0;
//在for循环中,可以写多个变量
for(double i =1,j=3;i<=97&j<=99;i+=2,j+=2){
sum+=(i/j);
}
System.out.println(sum);
}
练习23:输出100以内的所有素数,每行显示5个;并求和。
/*
* 练习23:输出100以内的所有素数,每行显示5个;并求和。
*
* (素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除)
*/
public static void main(String[] args) {
int i, j;
int count = 0;
int sum = 0;
for (i = 2; i <= 100; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0)
break;
}
if (j >= i) {// 也可以写成j==i
System.out.print(i + " ");
sum += i;
count++;
if (count % 5 == 0) {
System.out.println();
}
}
}
System.out.println("100以内的所有素数之和为:" + sum);
}
练习24:通过编程解决小和尚要挑几次水才可以把水缸挑满的问题
提示:
(1) 用整型变量water表示水缸里的水“int water = 15;”。
(2)用整型变量l表示小和尚下山挑水的次数“int l = 0;”。
(3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。
(4) 套用while循环(或do-while循环)写出代码。
/*
* 练习24:山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
* 提示:
* (1) 用整型变量water表示水缸里的水“int water = 15;”。
* (2)用整型变量l表示小和尚下山挑水的次数“int l = 0;”。
* (3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。
* (4) 套用while循环(或do-while循环)写出代码。
*
*/
public static void main(String[] args) {
int water = 15;
int l = 0;
while(water<50){
l++;
water+=5;
}
System.out.println("小和尚要挑"+l+"次水才可以把水缸挑满");
}
/*
* 练习24:山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
* 提示:
* (1) 用整型变量water表示水缸里的水“int water = 15;”。
* (2)用整型变量l表示小和尚下山挑水的次数“int l = 0;”。
* (3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。
* (4) 套用while循环(或do-while循环)写出代码。
*
*/
public static void main(String[] args) {
int water = 15;
int l = 0;
do{
l++;
water+=5;
}while(water<50);
System.out.println("小和尚要挑"+l+"次水才可以把水缸挑满");
}
练习25:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)
/*
* 练习25:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)
* 提示:采用逆向思维分析问题。
*
*/
public static void main(String[] args) {
//壶里的酒
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”。
/*
* 练习26:开发一个标题为“FlipFlop”的游戏应用程序。
* 它从1计数到100,
* 遇到3的倍数就替换为单词“Flip”,
* 5的倍数就替换为单词“Flop”,
* 既为3的倍数又为5的倍数则替换为单词“FlipFlop”。
*/
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 & i % 5 == 0) {
System.out.println("FlipFlop");
} else if (i % 3 == 0) {
System.out.println("Flip");
} else if (i % 5 == 0) {
System.out.println("Flop");
} else {
System.out.println(i);
}
}
}
练习27:生成13位条形码 Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码
/*
* 练习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
*/
public static void main(String[] args) {
StringBuffer code;
int check;
System.out.print("请输入Ean-13条形码的前十二位:");
Scanner sc = new Scanner(System.in);
code =new StringBuffer(sc.nextLine());
//调用方法获得校验码
check = ean13(code);
//在条码后面追加校验码
code.append(check);
System.out.println("正确的条形码是:"+code);
sc.close();
}
//定义方法获得校验码
public static int ean13(StringBuffer code){
int c1=0;
int c2=0;
int sum=0;
int 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;
//返回的值是校验码
return check;
}
练习28:求两个整数的最大公约数和最小公倍数
/*
* 练习28:求两个整数的最大公约数和最小公倍数
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int num1 = sc.nextInt();
System.out.println("请输入第二个整数:");
int num2 = sc.nextInt();
int max;
int min;
if (num1 > num2) {
max = num1;
min = num2;
} else {
max = num2;
min = num1;
}
// 最大公约数
for (int i = min; i >= 1; i--) {
if (num1 % i == 0 && num2 % i == 0) {
System.out.println("最大公约数:" + i);
break;
}
}
// 最小公倍数
for (int i = max;; i++) {
if (i % num1 == 0 && i % num2 == 0) {
System.out.println("最小公倍数:" + i);
break;
}
}
sc.close();
}
练习29:将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?
/*
* 练习29:将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?
*/
public static void main(String[] args) {
int yiYuan = 1;
int wuYuan = 5;
int shiYuan = 10;
int count = 0;
for (int i = 0; i <= 100; i++) {
for (int j = 0; j <= 20; j++) {
for (int k = 0; k <= 10; k++) {
if (i * yiYuan + j * wuYuan + k * shiYuan == 100) {
count++;
System.out.println(i + "张1元," + j + "张5元," + k + "张10元");
}
}
}
}
System.out.println("一共有" + count + "种兑换方法");
}
练习30:用100元人民币兑换10元,5元,1元的纸币(每种都要有),计算有多少种兑换方案
/*
* 练习30:用100元人民币兑换10元,5元,1元的纸币(每种都要有),计算有多少种兑换方案
*/
public static void main(String[] args) {
int yiYuan = 1;
int wuYuan = 5;
int shiYuan = 10;
int count = 0;
for (int i = 1; i <= 100; i++) {
for (int j = 1; j <= 20; j++) {
for (int k = 1; k <= 10; k++) {
if (i * yiYuan + j * wuYuan + k * shiYuan == 100) {
count++;
System.out.println(i + "张1元," + j + "张5元," + k + "张10元");
}
}
}
}
System.out.println("一共有" + count + "种兑换方法");
}
练习31:设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
/*
* 练习31:设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
*/
public static void main(String[] args) {
int drink = 50; // 饮料总数
int count = 0; // 兑换次数
while (true) {
drink -= 3; // 喝3瓶
drink++; // 兑换1瓶
count++; // 兑换次数+1
if (drink < 3) {
System.out.println("共喝了" + (50 + count) + "瓶");
break;
}
}
}