1. 程式人生 > >java習題——迴圈2

java習題——迴圈2

1.輸出圖型

*

**

***

****

*****

******

public class Test01 {
	public static void main(String[] args) {
		for(int i=1;i<=6;i++){
			for(int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

2  輸出圖型
*******
******
*****
****
***
**
*

public class Test02 {
    public static void main(String[] args) {
        for(int i=7;i>=1;i--){
            for(int j=1;j<=i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

3 .把1、2題的兩個圖型合成一個。

public class Test03 {
	public static void main(String[] args) {
		for(int i=1;i<=6;i++){
			for(int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
		for(int i=7;i>=1;i--){
			for(int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

4.編寫一個九九乘法表

public class Test04 {
	public static void main(String[] args) {
		for(int i=1;i<=9;i++){
			for(int j=1;j<=i;j++){
				System.out.print(j+"*"+i+"="+i*j+"\t");
			}
			System.out.println();
		}
	}
}

5 .百錢買百雞,有100元錢,要去買100只雞,公雞5元一隻,母雞3元一隻,小雞1元3只,問公,母,小雞各買多少隻。

提示: a+b+c=100  只

       5a+3b+1/3c=100錢

public class Test05{
	public static void main(String[] args) {
		for (int cock=1;cock<=20;cock++ ){
			for (int hen=1;hen<=33;hen++ ){
				if(7*cock+4*hen==100)
					System.out.println("公雞買"+cock+"只,母雞買"+hen+"只,小雞買"+(100-cock-hen)+"只");
			}
		}
	}
}

6 .星型圖案

     *

    ***

   *****

  *******

 *********

public class Test06 {
	public static void main(String[] args) {
		for(int i=1;i<=5;i++){
			for(int j=1;j<10;j++){
				if(j<=(5-i)||j>=(5+i)){
					System.out.print(" ");
				}else{
					System.out.print("*");
				}
			}
			System.out.println();
		}

	}
}

7 .把上圖形再倒過來,合成一個菱形圖案

public class Test07{
	public static void main(String[] args) {
		for(int i=1;i<=9;i++){
			for(int j=1;j<10;j++){
				if(j<=Math.abs(5-i)||j>=(10-Math.abs(5-i))){
					System.out.print(" ");
				}
				else{
					System.out.print("*");
				}
			}
			System.out.println();
		}
	}
}

8 .打印出一個空菱形圖案

public class Test08 {
	public static void main(String[] args) {
		for(int i=1;i<=9;i++){
			for(int j=1;j<10;j++){
				if(j==(Math.abs(5-i)+1)||j==(9-Math.abs(5-i))){
					System.out.print("*");
				}
				else{
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
}

9.求300-400之間的素數

public class Test09{
	public static void main(String[] args) {
		System.out.println("300-400之間的素數有:");
		for (int i=300;i<400 ;i++ ){
			boolean flag = true;
			for (int j=2;j<=i/2 ;j++ ){
				if (i%j==0){
					flag = false;
					break;
				}
			}
			if (flag==true){
				System.out.print(i+" ");
			}
		}
	}
}

10. 輸出一個平行四邊形的圖案

public class Test10 {
	public static void main(String[] args) {
		for (int i=1;i<=4 ;i++ ){
			for (int j=1;j<=8 ;j++ ){
				if (j>(4-i)&&j<(9-i)){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
}

11.用while做 雞兔同籠。雞兔一共有50只,腳一共有160只,問雞和兔各多少隻?要求雞兔至少一樣一隻。  

public class Test11 {
	public static void main(String[] args) {
		int chicken = 1;
		while (chicken<50){
			if (2*chicken+4*(50-chicken)==160){
				System.out.println("雞有"+chicken+"只,兔有"+(50-chicken)+"只");
			}
			chicken++;
		}
	}
}

12.計算2/1+3/2+4/3+…+(n+1)/n,寫出演算法的程式.

import java.util.Scanner;
public class Test12 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.println("請輸入n的值:");
		double n = s.nextDouble();
		double sum=0;
		for (double i=1;i<=n;i++ ){
			sum+=(i+1)/i;
		}
		System.out.println(sum);
	}
}

13.2000年我國人口為13億,如果人口每年的自然增長率為7%,那麼多少年 後我國人口將達到15億?設計一個演算法的程式   

public class Test13 {
	public static void main(String[] args) {
		int sum=0;
		double population = 13;
		while (population<15){
			population*=1.07;
			sum++;
		}
		System.out.println(sum+"年後我國的人口將達到15億");
	}
}

14.給出50個數,1,2,4,7,11,„,其規律是:第1個數是1,第2個數比第1個數大1,第3個數比第2個數大2,第4個數比第3個數大3,„,以此類推. 要求計算這50個數的和. 先將下面給出的程式框圖,再根據程式框圖寫出程式.

public class Test14 {
	public static void main(String[] args) {
		int sum=0,j=1;
		for (int i=1;i<=50 ;i++){
			j+=(i-1);
			sum+=j;
		}
		System.out.println("這50個數的和為:"+sum);
	}
}

15.有個人想知道,一年之內一對兔子能繁殖多少對?於是就築了一道圍牆把一對兔子關在裡面。已知一對兔子每個月可以生一對小兔子,而一對兔子從出生後第3個月起每月生一對小兔子。假如一年內沒有發生死亡現象,那麼,一對兔子一年內(12個月)能繁殖成多少對?  分析:兔子的規律為數列,1,1,2,3,5,8,13,21

public class Test15 {
	public static void main(String[] args) {
		int f1 = 1;      
		int f2 = 1;      
		int sum = 0; 
		for(int i = 3; i <= 12; i++){       
			sum = f1 + f2;       
			f1 = f2;       
			f2 = sum;      
		} 
		System.out.println("一對兔子一年內能繁殖成" + sum + "對。"); 
	}
}

16. 水仙花數(Narcissistic number)也被稱為超完全數字不變數、自戀數、自冪數,水仙花數是指一個 n 位數(n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身(例如:1^3 + 5^3+ 3^3 = 153),請通過程式找出所有的3位數的水仙花數(窮舉法)

public class Test16 {
	public static void main(String[] args) {
		System.out.println("100-1000中的水仙花數有:");
		for (int i=100;i<1000;i++ ){
			int ge  = i%10;
			int shi = i/10%10;
			int bai = i/10/10%10;
			if(i == (ge*ge*ge+shi*shi*shi+bai*bai*bai)){
				System.out.println(i);
			}
		}
	}
}

17. 從控制檯輸入一個正整數,並進行反轉輸出

import java.util.Scanner;
public class Test17 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); 
		System.out.println("請輸入一個整數:"); 
		int num=sc.nextInt(); 
		int result=0;
		while(true) { 
			int n=num%10;
			result=result*10+n;
			num=num/10;
			if(num==0) { 
				break; 
			} 
		} 
		System.out.println(result); 
	}
}