java程式設計題50道(4)
阿新 • • 發佈:2021-07-14
程式16
題目:輸出9*9口訣。
題目思路:
以兩個for迴圈執行輸出,第一個for迴圈分行,控制前一個乘數,第二個for迴圈,控制後乘數與乘積並輸出
1 package test; 2 3 import java.util.Scanner; 4 public class hello { 5 6 public static void main(String[] args) 7 { 8 Scanner in=new Scanner(System.in); 9 System.out.print("輸入"); 10 inta=0; 11 for (int i = 1; i <= 9; i++) { 12 System.out.println();//每次大迴圈時分行 13 for (int j = 1; j <=i; j++) { 14 a=i*j; 15 System.out.print(i+"*"+j+"="+a+" ");//按x*y=xy格式輸出 16 } 17 } 18 } 19 }
程式17
題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。
題目思路:
由第十天反推到第一天,每一天均為前一天的二倍加一,即x*2+1
package test; import java.util.Scanner; public class hello { public static void main(String[] args) { Scanner in=new Scanner(System.in); System.out.print("輸入"); int a=1; for (int i = 1; i <= 9; i++) { a=a*2+1;//每一天均為前一天的一半零一個 System.out.println("第"+i+"天有"+a+"個"); } } }
程式18
題目:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽籤決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請程式設計序找出三隊賽手的名單。
題目思路:
將兩隊人員以列表定義,通過for迴圈匹配,用if來決定條件,最後輸出
1 package test; 2 3 import java.util.Scanner; 4 public class hello { 5 6 public static void main(String[] args) 7 { 8 Scanner in=new Scanner(System.in); 9 System.out.print("輸入"); 10 char [] list = {'a','b','c'};//使用陣列定義兩隊人員 11 char [] list1 = {'x','y','z'}; 12 System.out.print("比賽名單為:"); 13 for (int i = 0; i < 3; i++) { 14 System.out.println(); 15 for (int j = 0; j < 3; j++) { 16 if (list[i]=='a'&& list1[j]=='x') { 17 continue;//注意使用continue,不要使用break,否則會直接跳出 18 } 19 else if (list[i]=='c'&& list1[j]=='x') { 20 continue; 21 } 22 else if (list[i]=='c'&& list1[j]=='z') { 23 continue; 24 } 25 else { 26 System.out.print(list[i]+"vs"+list1[j]+" ");//輸出比賽情況 27 } 28 } 29 } 30 } 31 32 }
程式19
題目:打印出如下圖案(菱形)。
題目思路:
輸出分為兩部分,分別輸出,注意for迴圈中空格與*的輸出,結束後要換行
1 package test; 2 3 import java.util.Scanner; 4 public class hello { 5 6 public static void main(String[] args) 7 { 8 Scanner in=new Scanner(System.in); 9 int a=7; 10 for (int x = 0; x <4; x++) {//輸出上半部分 11 for (int i = 0; i <a/2 - x ; i++) { 12 System.out.print(" "); 13 } 14 for (int j = 0; j <x*2+1; j++) { 15 System.out.print("*"); 16 } 17 System.out.println(); 18 } 19 for (int x = 1; x <=3; x++) {//輸出下半部分 20 for (int i = 1; i <=x ; i++) { 21 System.out.print(" "); 22 } 23 for (int j = 1; j <=7-2*x; j++) { 24 System.out.print("*"); 25 } 26 System.out.println(); 27 } 28 } 29 }
程式20
題目:有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和。
題目思路:
第三項開始,不論除數與被除數均為前兩項相加之後,通過for迴圈求出第三項並替換
1 package test; 2 3 import java.util.Scanner; 4 public class hello { 5 6 public static void main(String[] args) 7 { 8 Scanner in=new Scanner(System.in); 9 int a=2;//先定義 10 int a1=3; 11 int b=1; 12 int b1=2; 13 int a2=0; 14 int b2=0; 15 double sum=2/1+3/2;//先將前置項寫出 16 for (int i = 2; i <20; i++) { 17 a2=a+a1;//求出新項 18 b2=b+b1; 19 sum+=a2/b2; 20 a=a1;//替換 21 a1=a2; 22 b=b1; 23 b1=b2; 24 System.out.println(sum); 25 } 26 System.out.print("總和為:"+sum); 27 } 28 }