目录
13:使用Java实现输出如下图形。
14:实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个篮球中随机选择1个组成一注彩票。可以选择买多注。
15:输出1-100之间的不能被5整除的数,每5个一行。
16:输出斐波那契数列数列的前20项
17:输出一个整数的二进制数、八进制数、十六进制数。
18:随机产生一个字母,如果是大写字母则输出“yes”,否则输出“no”
19:随机产生一个字符,判断:如果为大写字母则输出“大写字母”;如果为小写字母则输出“小写字母”;否则怎输出“其他字符”;
20:求100到1000之间的所有能被5和6整除的整数,每行显示5个
21:求和:1/3+3/5+5/7+7/9+………..+97/99
22:输出100以内的所有素数,每行显示5个;并求和。
23:山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
提示:
(1) 用整型变量water表示水缸里的水“int water = 15;”。
(2) 用整型变量l表示小和尚下山挑水的次数“int l = 0;”。
(3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。
(4) 套用while循环(或do-while循环)写出代码。
24:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)
提示:采用逆向思维分析问题。
25:开发一个标题为“FlipFlop”的游戏应用程序。它从1计数到100,遇到3的倍数就替换为单词“Flip”,5的倍数就替换为单词“Flop”,既为3的倍数又为5的倍数则替换为单词“FlipFlop”。
26:生成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
27:求两个整数的最大公约数和最小公倍数
28:将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?
29:用100元人民币兑换10元,5元,1元的纸币(每种都要有)共50张,计算有多少种兑换方案
30:设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
//(图形一)-----------外循环控制行数---内循环控制列数 public static void main(String[] args) { for(int i=1;i<=3;i++){ for (int j=3-i;j>0;j--){ System.out.print(" "); } for (int k=1;k<=2*i-1;k++){ System.out.print("*"); } System.out.println(); }
//(图形二)-----------外循环控制行数---内循环控制列数 public static void main(String[] args) { for (int i = 1;i<=6;i++){ //上半部分 6行------分行输出 for (int j =6-i;j>0;j--){ // 每行空格数 第一行i=1-----循环5次-----输出5个空格 System.out.print(" "); } for (int k = 1;k<=2*i+3;k++){ //每行星数 第一行i=1-----循环5此----输出5个星 System.out.print("*"); } System.out.println(); } for (int m = 1;m<=5;m++){ for (int n =1;n<=m;n++){ System.out.print(" "); } for (int l = 2*m+3;l<18;l++){ System.out.print("*"); } System.out.println(); } }
//(图形三)-----------外循环控制行数---内循环控制列数 public static void main(String[] args) { System.out.println(" *"); //--------------------上半部分----------------------- for (int a =1;a<=8;a++){ //共8行---每行输出 for (int b = 1;b<=8-a;b++){ //*前空格---按行输出---a=1---输出7个空格 System.out.print(" "); } System.out.print("*"); //每次结束空格后都输出一次* for (int c=1;c<=2*a-1;c++){ //*后空格---按行输出---a=1----输出1个空格 System.out.print(" "); } System.out.println("*"); //每次结束空格后都输出一次* } //--------------------下半部分----------------------- for (int i=1;i<=7;i++){ //共7行 for (int j = 1;j<=i;j++){ //*前空格-----i=1----输出1个空格 System.out.print(" "); } System.out.print("*"); for (int k = 2*i-1;k<=13;k++){ //*后空格-----i=1----输出13个空格 System.out.print(" "); } System.out.println("*"); } System.out.println(" *"); }
//(图形四)-----------外循环控制行数---内循环控制列数 public static void main(String[] args) { System.out.println("***************"); for (int i = 1;i<=7;i++){ for (int j = 1;j<=8-i;j++){ //空格前----每行输出*数 System.out.print("*"); } for (int k = 2*i-1;k>0;k--){ //每行输出空格 System.out.print(" "); } for (int l = 1;l<=8-i;l++){ //空格后----每行输出*数 System.out.print("*"); } System.out.println(); //每行结束换行 } }
public static void main(String[] args) { //实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个篮球中随机选择1个组成一注彩票。可以选择买多注。 //红球中----随机选择6个随机数字 //键盘输入选择几注 Scanner sc = new Scanner(System.in); System.out.println("请输入您需要购买的注数:"); int times = sc.nextInt(); for (int a = 1;a<=times;a++){ for (int i= 1;i<=6;i++){ int num = (int)(Math.random()*36+1); int storage = 0; if (num!=storage){ //判断下一位随机数字与上一位是否重复 System.out.print("红球:"+num+"\t");} storage = num; //将上一位随机数字赋值给一个存储变量 } int num1 = (int)(Math.random()*14); System.out.println("蓝球:"+num1); }
public static void main(String[] args) { //输出1-100之间的不能被5整除的数,每5个一行。 int count = 0; //计数器 for (int i = 1;i<=100;i++){ if (i%5!=0){ System.out.print(i+"\t"); count++; } if (count!=0){ //循环过程中1-4的时候 无法进行进入上面if中,此时count的值一直为0,此时如果不进行判断--会一直输出换行 if (count%5==0){ System.out.println(); count= 0; //循环过程中的6-9的时候 无法进行进入上面if中,此时count的值一直为5,会一直输出换行----因此赋值0后重新进行循环判断 } } }
public static void main(String[] args){ //输出斐波那契数列数列的前20项(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765) //从第三项开始,结果为前两项的和 int num1 = 1; int num2 = 1; for (int i = 1;i<=18;i++){ int a = num1+num2; //第三个变量的值=第一个变量中的值+第二个变量中的值 System.out.print(a+" "); num1 = num2; //将第二项的值赋给第一个变量中 num2 = a; //将第三项的值赋给第二个变量中 }
public static void main(String[] args) { //输出一个整数的二进制数、八进制数、十六进制数。 Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num = sc.nextInt(); for (int i = 1;i<=i+1;i++){ int a = num%2; num = num/2; System.out.print(a); if (num==1){ System.out.print(num); break; } }
public static void main(String[] args) { //随机产生一个字母,如果是大写字母则输出“yes”,否则输出“no” //大写字母ASCII【65,90】-----------小写字母【97,122】 for (int i =1;i<=i+1;i++){ int num = (int)(Math.random()*57+65); //随机输出一个【65,122) if (num>=65 && num<=90){ char letter = (char) num; System.out.println(letter); System.out.println("Yes"); break; }else if (num>=97 && num<=122){ char letter = (char) num; System.out.println(letter); System.out.println("No"); break; } }
//随机产生一个字符,判断:如果为大写字母则输出“大写字母”;如果为小写字母则输出“小写字母”;否则怎输出“其他字符”; //字符编码【0,127】 // for (int a = 0;a<=a+1;a++){ //死循环 int num = (int)(Math.random()*127); if (num>=65 && num<=90){ char letter = (char) num; System.out.println(letter); System.out.println("大写字母"); // break; }else if (num>=97 && num<=122){ char letter = (char) num; System.out.println(letter); System.out.println("小写字母"); // break; }else{ System.out.println("其他字符"); // break; }
//求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+"\t"); count++; } if (count!=0){ if (count%5==0){ System.out.println(); count = 0; } }
//求和:1/3+3/5+5/7+7/9+………..+97/99 double sum = 0; for (double i=1;i<=97;i+=2){ double j = i+2; sum += i/j; } System.out.println(sum); }
//输出100以内的所有素数,每行显示5个;并求和 //素数-----大于1的自然数----因数只有1和本身 int count = 0; for (int i = 2;i<=100;i++){ int j=2; for (; j<=i;j++) //除以j----判断因素---直到得到一个因数 if (i%j==0){ break; //一旦获得第一个因数 立刻停止循环 获得j的值进行判断 } if (i==j){ //如果得到的第一个因数是本身-----代表是素数 System.out.print(i+"\t"); count++; } if (count!=0){ //每5个一行输出 if (count%5==0){ System.out.println(); count = 0; } } }
/*山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。 提示: (1) 用整型变量water表示水缸里的水“int water = 15;”。 (2) 用整型变量l表示小和尚下山挑水的次数“int l = 0;”。 (3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。 (4) 套用while循环(或do-while循环)写出代码。 */ /* //----------------------------for循环-------------------------------- int count = 0; for (int i =15;i<50;i+=5){ //初始为15 满足条件每次加5升水 第一次15升的时候 次数为1---所有后面要剪掉第一次水 count++; } System.out.println(count-1);*/ /* //---------------------------while循环----------------------------- int water = 15; int l = 0; while(water<50){ water +=5; l++; } System.out.println(l);*/ //----------------------------do-while----------------------------- int water = 15; int l = 0; do { water+=5; l++; }while(water<50); System.out.println(l); }
/* 李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒? (使用for循环结构编程实现) 提示:采用逆向思维分析问题。 */ /*分析: 店 花 0.5 1 最后 0.75 1.5 0.875 1.75 (1+0.875)/2 1+0.875 {(1+0.875)/2+1}/2 (1+0.875)/2+1 */ double wineShop = 0; double flower; for (int i= 1;i<=5;i++){ flower = wineShop+1; wineShop = flower/2; System.out.println(wineShop); }
/* 开发一个标题为“FlipFlop”的游戏应用程序。从1计数到100 遇到3的倍数就替换为单词“Flip”, 遇到5的倍数就替换为单词“Flop”, 既为3的倍数又为5的倍数则替换为单词“FlipFlop”。-----------------15的倍数 */ for (int i = 1;i<=100;i++){ if (i%3==0 && i%5!=0){ System.out.println(i+" "+"Flip"); }else if (i%5==0 && i%3!=0){ System.out.println(i+" "+"Flop"); }else if (i%15==0){ System.out.println(i+" "+"FlipFlop"); }
//Scanner键盘录入 Scanner sc = new Scanner(System.in); System.out.println("请输入12位数字:"); long num = sc.nextLong(); // long num = 690123456789L; long a = num; int oddSum = 0; int evenSum = 0; //求出奇数和以及偶数和 for (int i = 1;i<=12;i++){ long lastNum = num%10; if(i%2==0){ oddSum += lastNum; //偶数位和 }else{ evenSum += lastNum; //奇数位和 } num = num/10; } //将奇数和与偶数和的三倍相加 int sum = oddSum+evenSum*3; //取结果的个位数 int bits = sum%10; //用10减去这个个位数 int checkNum = 10-bits; //判断是否为0 if (sum%10!=0){ System.out.println(a+""+checkNum); }else{ System.out.println(a+"0"); }
//求两个整数的最大公约数和最小公倍数 //Scanner键盘输入两个整数 Scanner sc = new Scanner(System.in); System.out.println("请输入第一个整数:"); int num1 = sc.nextInt(); System.out.println("请输入第二个整数:"); int num2 = sc.nextInt(); //判断大小--------------------------------使得num1为两数中较大值 if (num1=1;i--){ if (num1%i==0 && num2%i==0){ System.out.println("这两个数的最大公约数位:"+i); break; }
public static void main(String[] args) { //将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法? for (int i=0;i<=100;i++){ //一元最少0张,最多100张 for (int j =0;j<=20;j++){ //5元最少0张,最多20张 for (int k = 0;k<=10;k++){ //10元最少0张,最多10张 if (i+5*j+10*k==100){ System.out.println(i+"张1元"+"+"+j+"张5元"+"+"+k+"张10元"); } } } }
//用100元人民币兑换10元,5元,1元的纸币(每种都要有)共50张,计算有多少种兑换方案 int count = 0; for (int tenYuan = 1;tenYuan<=5;tenYuan++){ //每种都要有----从1开始 for (int wuYuan = 1;wuYuan<=10;wuYuan++){ for (int yiYuan = 1;yiYuan<=50-tenYuan-wuYuan;yiYuan++){ //共50张 if (tenYuan*10+wuYuan*5+yiYuan==100){ System.out.println("一元:"+yiYuan+"\t"+"五元:"+wuYuan+"\t"+"十元:"+tenYuan); count++; } } } } System.out.println("共有:"+count+"种方法"); }
public static void main(String[] args) { //设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料? //三个空瓶换一瓶饮料-----意味着每次总量减少两瓶代表喝了三瓶 int amount = 0; //能够兑换一瓶的瓶数 for (int i = 50;i>2;i-=3){ //每次减少两瓶----最后剩余两瓶没有办法兑换----因此剩下的两瓶需要单独拿出来 amount+=3; i++; } int sum = amount+2; System.out.println("总共喝了:"+sum+"瓶饮料"); } }