循环结构练习

发布时间:2024年01月11日

目录

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

02:求100以内的所有素数

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条件的数。

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升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。

25:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)

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

27:生成13位条形码

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

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

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

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


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

package com.textday002;

public class WorkBook{
????public static void main(String[] args) {
// ???????01:求10以内的偶数的和。
????????int sum=0;
????????for(int i=0;i<=10;i++ ){
????????????if(i%2==0)
????????????????sum+=i;
????????}
????????System.out.println("10以内的偶数的和:"+sum);
????}
}

02:求100以内的所有素数

(素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除)

package com.textday002;

public class WorkBook{
????public static void main(String[] args) {
// ?????02:求100以内的所有素数
// ????(素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除)
????????int i,j,count=0;
????????for(i=2;i<=100;i++){
????????????for(j=2;j<=i/2;j++){
????????????????if(i%j==0){
????????????????????break;
????????????????}
????????????}
????????????if(j>i/2){
????????????????count++;
????????????????System.out.println(i+"是素数");
????????????}
????????}
????????System.out.println("素数共有:"+count+"个");
????}
}

03:随机产生一个1-100之间的整数,看能几次猜中。要求:猜的次数不能超过7次,每次猜完之后都要提示“大了”或者“小了”。

package com.textday002;

import java.util.Scanner;

public class WorkBook{
????public static void main(String[] args) {
// ????03:随机产生一个1-100之间的整数,看能几次猜中。
// ????要求:猜的次数不能超过7次,每次猜完之后都要提示“大了”或者“小了”。
????????System.out.println("你猜的次数不能超过7次");
????????int number= (int) (Math.random()*100+1);
????????Scanner scan= new Scanner(System.in);
????????int number1;
????????int i;
????????for(i=1;i<=7;i++){
????????????System.out.print("请输入你第"+i+"次猜的数:");
????????????number1=scan.nextInt();
????????????if(number == number1){
????????????????System.out.println("恭喜你第"+i+"次猜中了");break;
????????????}else if(number>number1){
????????????????System.out.println("小了");
????????????}else{
????????????????System.out.println("大了");
????????????}
????????}
????????if(i==7)
????????????System.out.println("很遗憾你7次都没猜中");
????????System.out.println("程序结束");
????}
}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????for(int i=100;i<1000;i++){

????????????int ge=i%10,shi =i/10%10,bai = i/100%10;

????????????if(Math.pow(ge,3)+Math.pow(shi,3)+Math.pow(bai,3)==i){

????????????????System.out.println(i+"是水仙花数");

????????????}

????????}

????}

}

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

package com.textday002;

import static java.lang.System.*;

public class WorkBook{

????public static void main(String[] args) {

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

????????char lower= 'a';

????????for(int i=0;i<26;i++)

????????????System.out.print((char)(lower+i)+" ?");

????????char upper = ?'Z';

????????System.out.println();

????????for(int i=0;i<26;i++)

????????????System.out.print((char)(upper-i)+" ?");

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????//用tag作为标记是+或者-

????????int sum=0,tag = 1;

????????for(int i =1;i<=101;i++){

????????????if(tag == 1){

????????????????sum+=i;

????????????}else{

????????????????sum-=i;

????????????}

????????????if(tag==1){

????????????????tag=0;

????????????}else{

????????????????tag=1;

????????????}

????????}

????????System.out.println("1-3+5-7+9-...101="+sum);

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????double sum=0;

????????for(int i=1;i<=100;i++){

???????????if(i%2==1){ ?//分母是奇数是+

???????????????sum+=1.0/i;

???????????}else{

???????????????sum-=1.0/i;

???????????}

????????}

????????System.out.println("1-1/2+1/3-1/4+...1/100="+sum);

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????int i=20,count=0;

????????while(i<81){

????????????if( i%3 == 0){

????????????????System.out.print(i+" ?");

????????????????count++;

????????????}

????????????if(count%5==0){

????????????????System.out.println();

????????????}

????????????i++;

????????}

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

????????// 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%5==0){

????????????????System.out.println();

????????????}

????????}

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????int a,b;

????????for(a=0;a<10;a++){

????????????for(b=0;b<10;b++){

????????????????if(a+b==12){

????????????????????System.out.print(a+"+"+b+"=12 ??");

????????????????}

????????????}

????????}

????}

}

11:ABCD分别为0——9之间的整数,求出满足AB+CD=DA条件的数。

????例如:90+09=99

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????// ???例如:90+09=99

????????int A,B,C,D;

????????for(A=0;A<10;A++){

????????????for(B=0;B<10;B++){

????????????????for(C=0;C<10;C++){

????????????????????for(D=9;D<10;D++)

????????????????????????if((A*10+B)+(C*10+D)==(D*10+A))

????????????????????????????System.out.println((A*10+B)+"+"+(C*10+D)+"="+(D*10+A));

????????????????}



????????????}

????????}

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????int number=(int)(Math.random()*10000);

????????System.out.print("该五位数是:"+number+"\n");

????????int count=0,j=0;

????????for(int i=0;i<5;i++){

????????????j = number%10;

????????????number /=10;

????????????count++;

????????????if(count==1){

????????????????System.out.println("个位是:"+j);

????????????} else if (count==2) {

????????????????System.out.println("十位是:"+j);

????????????}else if(count==3){

????????????????System.out.println("百位是:"+j);

????????????}else if(count==4){

????????????????System.out.println("千位是:"+j);

????????????}else if(count==5){

????????????????System.out.println("万位是:"+j);

????????????}

????????????if(number == 0){

????????????????break;

????????????}

????????}

????????System.out.println("共有"+count+"位");

????}

}

13:输出九九乘法表

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

????????// 13:输出九九乘法表

????????for(int i=1;i<=9;i++){

????????????for(int j=1;j<=i;j++){

????????????????System.out.print(i+"*"+j+"="+i*j+" ???");

????????????}

????????????System.out.println();

????????}

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????//外层循环控制行数

????????for (int i = 1; i <= 3; i++) {

????????????//输出每一行前面的空格“ ”

????????????for (int j = 3 - i; j > 0; j--) {

????????????????System.out.print(" ");

????????????}

????????????//输出每一行的“*”

????????????for (int k = 2 * i - 1; k > 0; k--) {

????????????????System.out.print("*");

????????????}

????????????//换行

????????????System.out.println();

????????}

????}

}

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????//行h

????????for(int h = 1; h <=5; h++){

????????????//空格k

????????????for(int k =1; k <= 6-h ; k++){

????????????????System.out.print(" ");

????????????}

????????????//*

????????????for(int m = 1; m <= 2*h+4; m++){

????????????????System.out.print("*");

????????????}

????????????System.out.println();

????????}

????????for(int h2 = 6; h2 >= 1; h2--){

????????????//空格k

????????????for(int k2 = 1; k2 <= 6-h2 ; k2++){

????????????????System.out.print(" ");

????????????}

????????????//*

????????????for(int m2 = 1; m2 <= 2*h2+4; m2++){

????????????????System.out.print("*");

????????????}

????????????System.out.println();

????????}

????}

}

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

????????//上半截图形:外层循环控制行数

????????System.out.println(" ???????*");

????????for (int i = 1; i <= 8; i++) {

????????????//输出每一行前面的空格“ ”

????????????for (int j = 8-i; j >0; j--) {

????????????????System.out.print(" ");

????????????}

????????????//输出“*”

????????????System.out.print("*");

????????????//输出空格“ ”

????????????for (int k = 2*i-1; k >0; k--) {

????????????????System.out.print(" ");

????????????}

????????????//输出“*”

????????????System.out.println("*");

????????}

????????//下半截图形:外层循环控制行数

????????for (int i = 1; i <= 7; i++) {

????????????//输出每一行前面的空格“ ”

????????????for (int j = i; j >0; j--) {

????????????????System.out.print(" ");

????????????}

????????????//输出“*”

????????????System.out.print("*");

????????????//输出空格“ ”

????????????for (int k = 15-2*i; k >0; k--) {

????????????????System.out.print(" ");

????????????}

????????????//输出“*”

????????????System.out.println("*");

????????}

????????System.out.println(" ???????*");

????}

}

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

????????//外层循环控制行数

????????System.out.println("***************");

????????for (int i = 1; i <= 7; i++) {

????????????//输出每一行前面的“*”

????????????for (int j = 8-i; j >0; j--) {

????????????????System.out.print("*");

????????????}

????????????//输出每一行的空格“ ”

????????????for (int k = 2*i-1; k >0; k--) {

????????????????System.out.print(" ");

????????????}

????????????//输出每一行后面的“*”

????????????for (int m = 8-i; m >0;m--) {

????????????????System.out.print("*");

????????????}

????????????//换行

????????????System.out.println();

????????}

????}

}

15:实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个篮球中随机选择1个组成一注彩票。可以选择买多注。

package com.textday002;



import java.util.Scanner;



public class WorkBook{

????public static void main(String[] args) {

// ?15:实现双色球的彩票功能。规则:

// ?从36个红球中随机选择不重复的6个数,

// ?从15个篮球中随机选择1个组成一注彩票。可以选择买多注。

????????//创建Scanner类对象,用来获取从键盘输入的数据

????????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个一行。

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????int count=0;

????????for(int i =1;i<=100;i++){

????????????if(i%5!=0){

????????????????count++;

????????????????System.out.print(i+"\t");

????????????}

????????????if(count%5==0)

????????????????System.out.println();

????????}

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????int num[] = new int[20];

????????num[0]=0;

????????num[1]=1;

????????System.out.println("斐波那契数列前20项的值如下:");

????????System.out.print(num[0]+" "+num[1]+" ");

????????for(int i = 2; i < 20; i++){

????????????num[i] = num[i - 1] + num[i - 2];

????????????System.out.print(num[i]+" ");

????????}

????}

}

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

package com.textday002;



import java.util.Scanner;



public class WorkBook{

????public static void main(String[] args) {

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



????????Scanner scan=new Scanner(System.in);

????????System.out.print("输入一个整数:");

????????int n=scan.nextInt(); //输入15



????????System.out.println("n的十进制="+n);

????????System.out.println("n的二进制="+Integer.toBinaryString(n));

????????System.out.println("n的八进制="+Integer.toOctalString(n));

????????System.out.println("n的十六进制="+Integer.toHexString(n));

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????int number = (int) (Math.random()*58+65);

????????if(number>=65&&number<=90){

????????????System.out.println("Yes");

????????????System.out.println((char)number);

????????}else{

????????????System.out.println("No");

????????????System.out.println((char)number);

????????}

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

// ??20:随机产生一个字符,判断:如果为大写字母则输出“大写字母”;

// ??如果为小写字母则输出“小写字母”;否则怎输出“其他字符”

// ???????a-z:97~122

// ???????A~Z:65~90

????????int number = (int) (Math.random()*58+65);

????????if(number>=65&&number<=90){

????????????System.out.println("大写字母");

????????????System.out.println((char)number);

????????}else if(number>=97&&number<=122){

????????????System.out.println("小写字母");

????????????System.out.println((char)number);

????????}else{

????????????System.out.println("其他字符");

????????????System.out.println((char)number);

????????}

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

// ??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.print("\n");

????????????????}

????????????}

????????}

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

????????double sum=0;

????????for(double i = 1;i<=97;i+=2){

????????????sum+=(i/(i+2));

????????}

????????System.out.print("1/3+3/5+5/7+7/9+………..+97/99="+sum);

????}

}

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

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

// ???????素数只能被1和自己整除的数;1不是素数。

????????int count=0,sum=0,i,j;

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

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

????????????????if(i%j==0)

????????????????????break;

????????????}

????????????if(i==j){

????????????????count++;

????????????????sum+=i;

????????????????System.out.print(i+"\t");

????????????????if(count%5==0)

????????????????????System.out.println();

????????????}

????????}

????}

}

24:山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。

提示:

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

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

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

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

package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

// ??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,sum=water;

????????while(sum<50){

????????????l++;

????????????sum+=5;

????????}

????????System.out.println("小和尚要挑"+l+"次水,水缸最后水:"+sum);

????}

}

25:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)

提示:采用逆向思维分析问题。

??

?package com.textday002;



public class WorkBook{

????public static void main(String[] args) {

// ?25:李白无事街上走,提壶去买酒。

// ?遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)

//提示:采用逆向思维分析问题。

// ???????//最后喝光壶中酒可见最后一次是见花,喝了一斗酒

// ???????// ??1 ?????0.5

// ???????// ??1.5 ???0.75

// ???????// ??1.75 ??1.75/2

????????double surplus=0;

????????//逆推 ,最后是遇花喝一斗 之后变成0斗

????????for(int i=0;i<5;i++){

????????????surplus+=1; ??//先加1

????????????surplus/=2; ??//加一倍之前是喝完所剩的酒,遇店加一倍

????????}

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

????}

}

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

package com.textday002;



import java.util.Scanner;



public class WorkBook{

????public static void main(String[] args) {

// ?26:开发一个标题为“FlipFlop”的游戏应用程序。

// ?它从1计数到100,遇到3的倍数就替换为单词“Flip”,

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

????????System.out.println("这是一款‘FlipFlop’游戏应用程序");

????????for(int i=1;i<=100;i++){

????????????if(i%3==0&&i%5==0){

????????????????System.out.print("FlipFlop\n");

????????????}else if(i%3==0){

????????????????System.out.print("Flip\t");

????????????}else if(i%5==0){

????????????????System.out.print("Flop\n");

????????????}else{

????????????????System.out.print(i+"\t"+"\t");

????????????}

????????}

????}

}

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

package com.textday002;



import java.util.Scanner;



public class WorkBook{

????public static void main(String[] args) {

// ?27:生成13位条形码

????????Scanner scan = new Scanner(System.in);

????????int[] arr = new int[13];

????????System.out.print("请输入12个0~9之间的数字,例如(6 9 2 2 2 3 3 6 1 2 1 9):");



????????for(int i=0;i<(arr.length-1);i++){

????????????arr[i] = scan.nextInt();

????????}

????????//oddnum 为奇数和,evennum 为偶数和

????????int oddnum =0,evennum=0;

????????//计算奇数偶数和

????????for(int i=0;i<12;i++){

????????????if(i%2==0){

????????????????oddnum+=arr[i];

????????????}else if(i%2 ==1){

????????????????evennum+=arr[i];

????????????}

????????}

????????System.out.println("奇数和:"+oddnum);

????????System.out.println("偶数和"+evennum);

????????int threetimes ?= oddnum+evennum*3;

????????int ge = threetimes%10;

????????int checkcode;

????????if(ge==0){

????????????checkcode = 0;

????????}else{

????????????checkcode = 10-ge;

????????}

????????arr[12]=checkcode;

????????System.out.println("验证码的条码为:");

????????for(int i=0;i<arr.length;i++){

????????????System.out.print(arr[i]);

????????}

????}

}

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

package com.textday002;



import java.util.Scanner;



public class WorkBook{

????public static void main(String[] args) {

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

????????System.out.print("请输入两个整数:");

????????Scanner scan = new Scanner(System.in);

????????int x = scan.nextInt();

????????int y = scan.nextInt();

????????int temp=0,m=x,n=y;

????????if(x<y){

????????????temp = x;x=y;y=temp;

????????}

????????while(x%y!=0){

????????????temp = x%y;

????????????x=y;

????????????y=temp;

????????}

????????System.out.println("最大公约数:"+y);

????????System.out.println("最小公倍数"+m*n/y);

????}

}

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

package com.textday002;



import java.util.Scanner;



public class WorkBook{

????public static void main(String[] args) {

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

????????//这里题目没有要求每种都要有一张票,默认每种都可以有0张

????????//x 是1 元 ?y 代表 5 元 ?z 代表10元

????????int x=1,y=5,z=10,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*x+j*y+k*z == 100){

????????????????????????count++;

????????????????????????System.out.println(i+"*"+x+"+"+j+"*"+y+"+"+k+"*"+z+"="+100);

????????????????????}

????????????????}

????????????}

????????}

????????System.out.println("共有"+count+"种方法");

????}

}

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

package com.textday002;



import java.util.Scanner;



public class WorkBook{

????public static void main(String[] args) {

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

????????int x=1,y=5,z=10,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*x+j*y+k*z == 100 && i+j+k==50 ){

????????????????????????count++;

????????????????????????System.out.println(i+"*"+x+"+"+j+"*"+y+"+"+k+"*"+z+"="+100);

????????????????????}

????????????????}

????????????}

????????}

????????System.out.println("共有"+count+"种方法");

????}

}

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

package com,textday002;

import java.util.Scanner;



public class WorkBook{

????public static void main(String[] args) {

// ?31:设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,

// ?依次类推,请问总共喝了多少瓶饮料?

???????// -3 +1 ?-3 ?+1

????????// ?n 喝三瓶换一瓶

????????int sum=50,n=0;

????????while(true){

????????????sum-=3;

????????????n++;

????????????sum+=1;

????????????if(sum<3){

????????????????System.out.println("一共喝了"+(50+n)+"瓶");

????????????????break;

????????????}

????????}

????}

}

文章来源:https://blog.csdn.net/qq_53483101/article/details/135479308
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。