1. 程式人生 > 其它 >java程式設計題50道(4)

java程式設計題50道(4)

程式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         int
a=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 }