朝花夕拾 Java練習2
阿新 • • 發佈:2020-12-16
技術標籤:Java習題冊
朝花夕拾 Java習題集2
歡迎掃碼關注公眾號"野心與家", 回覆12.15獲取更多內容
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]+" ");
}
}
}