朝花夕拾 Java习题集2
欢迎扫码关注微信公众号 “野心与家”
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]+" ");
}
}
}