1. 程式人生 > 其它 >朝花夕拾 Java練習2

朝花夕拾 Java練習2

技術標籤:Java習題冊

朝花夕拾 Java習題集2

歡迎掃碼關注公眾號"野心與家", 回覆12.15獲取更多內容

點選此處回顧上一篇:朝花夕拾 Java練習1

1.一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在 第10次落地時,共經過多少米?第10次反彈多高?

package com.Dome.aoian;
public class Dome {
	public static void main(String[] args) {
		int i;
		double h=50,s=100;
		for(i=1;i<10;i++)
		{
			s=
s+2*h; h=h/2; } System.out.println(h); System.out.println(s); } }

2.猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個 第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下 的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少

package com.Dome.aoian;
public class Dome {
	public static void main(String[] args) {
		int s=1
; for(int day=9;day>0;day--) { s=2*(s+1); } System.out.println(s); } }

3.兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽籤決定比賽名單。有人向隊員打聽比賽的名單,a說他不和x比,c說他不和x,z比,請程式設計序找出三隊賽手的名單

package com.Dome.aoian;
public class Dome {
	public static void main(String[] args) {
		char a,b,c;
		for(a='x';a<=
'z';a++) { for(b='x';b<='z';b++) { for(c='x';c<='z';c++) { if(a!=b&&a!=c&&b!=c&&a!='x'&&c!='x'&&c!='z') { System.out.println("a與"+a); System.out.println("b與"+b); System.out.println("c與"+c); } } } } } }

4.輸出圖形

package com.Dome.aoian;
public class Dome {
	public static void main(String[] args) {
		for(int i=1;i<=6;i++)
		{
			for(int k=1;k<=13-2*i;k++)		//for(int k=1;k<=6-i;k++)
			{
				System.out.print(" ");				
			}
			for(int j=1;j<=2*i-1;j++)
			{
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

5.我國古代數學家張丘建在《算經》一書中提出的數學問題:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?

package com.Dome.aoian;
public class Dome {
	public static void main(String[] args) {
		int x,y,z;
		for(x=1;x<20;x++)			//不超過20只
		{
			for(y=1;y<33;y++)		//不超過33只
			{
				for(z=3;z<100;z++)	//不超過100只
				{
					if(x+y+z==100&&5*x+3*y+z/3==100&&z%3==0)
					{
						System.out.println("雞翁"+x+"母雞"+y+"雞雛"+z);
					}
				}
			}
		}
	}
}

6.雞兔同籠:
“雞兔同籠問題”是我國古算書《孫子算經》中著名的數學問題,其內容是:“今有雉(雞)兔同籠,上有三十五頭,下有九十四足。問雉兔各幾何。”

package com.Dome.aoian;
public class Dome {
	public static void main(String[] args) {
		int ji,tu;
		int jiao=94;
		int tou=35;
		tu=(jiao-tou*2)/2;
		ji=tou-tu;
		System.out.println(ji+"和"+tu);
	}
}

7.輸入一行字元,分別統計出英文字母、空格、數字和其它字元的個數

package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		System.out.println("請輸入一行字元:");
		Scanner sc=new Scanner(System.in);
		String s=sc.nextLine();
		char[] ch=s.toCharArray();
		int a=0,b=0,c=0,d=0;
		for(int i=0;i<ch.length;i++) //i !=ch.length
		{
			if(ch[i]>='0'&&ch[i]<='9')
			{
				a++;
			}
			else if(ch[i]>='a'&&ch[i]<='z'||ch[i]>='A'&&ch[i]<='Z')
			{
				b++;
			}
			else if(ch[i]==' ')
			{
				c++;
			}
			else
			{
				d++;
			}
				
		}
		System.out.println("數字個數是:"+a);
		System.out.println("英文字母個數是:"+b);
		System.out.println("空格個數是:"+c);
		System.out.println("其他字元個數是:"+d);
	}
}

8.有一個數列:1,1,2,3,5,8,13,21,34。。。。輸出該數列的前20項(要求5個數一行)

package com.Dome.aoian;
public class Dome {
	public static void main(String[] args) {
		int n[]= new int[20];
		n[0]=n[1]=1;
		for(int i=2;i<20;i++)
		{
			n[i]=n[i-1]+n[i-2];
		}
		System.out.println("該數列的前二十項之和是:");
		for(int i=0;i<20;i++)
		{
			System.out.print(n[i]+"\t");
			if((i+1)%5==0)
				System.out.println();
		}
	}
}

9.輸入10個整數,使用氣泡排序和選擇排序演算法將10個數從小到大排列並輸出。

package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		System.out.println("請輸入一行字元:");
		Scanner sc=new Scanner(System.in);
		int a[]=new int[10];
		for(int i=0;i<a.length;i++)
		{
			a[i]=sc.nextInt();
		}
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<a.length-i-1;j++)
			{
				if(a[j]>a[j+1])
				{
					int t=a[j];
					a[j]=a[j+1];
					a[j+1]=t;
				}			
			}			
		}
		System.out.println("從小到大為:");
		for(int i=0;i<a.length;i++)
			System.out.print(a[i]+" ");
	}
} 
package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		System.out.println("請輸入一行字元:");
		Scanner sc=new Scanner(System.in);
		int a[]=new int[10];
		for(int i=0;i<a.length;i++)
		{
			a[i]=sc.nextInt();
		}
		for(int i=0;i<a.length;i++)
		{
			for(int j=i+1;j<a.length;j++)
			{
				if(a[i]>a[j])
				{
					int t=a[j];
					a[j]=a[i];
					a[i]=t;
				}			
			}			
		}
		System.out.println("從小到大為:");
		for(int i=0;i<a.length;i++)
			System.out.print(a[i]+" ");
	}
} 

10.有一個從小到大排列的數列:12,23,35,56,68。現輸入一個100以內的整數,把它插入數列中,使其仍是從小到大排列

package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		System.out.println("插入之前為:12,33,35,56,68");
		System.out.println("請輸入一個100以內的整數:");
		Scanner sc=new Scanner(System.in);
		int i;
		int a[]=new int[6];
		a[0]=12;
		a[1]=23;
		a[2]=35;
		a[3]=56;
		a[4]=68;
		a[5]=sc.nextInt();
		for(i=0;i<a.length;i++)
		{
			int t=0;
			if(a[5]<a[i])
			{
				t=a[i];
				a[i]=a[5];
				a[5]=t;
			}
			System.out.print(a[i]+" ");
		}
	}
}