目录
练习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个
- */
- 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
- */
- 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个;并求和。
- *
- * (素数:一个大于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:山上有一口缸可以装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循环结构编程实现)
- * 提示:采用逆向思维分析问题。
- *
- */
- 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”。
- */
- 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码规则:第十三位数字是前十二位数字经过计算得到的校验码。 例如: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:求两个整数的最大公约数和最小公倍数
- */
- 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元的零钱,请问有多少种兑换方法?
- */
- 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元的纸币(每种都要有),计算有多少种兑换方案
- */
- 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个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
- */
- 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;
- }
- }
-
- }
-