java test.docx

上传人:b****5 文档编号:7845515 上传时间:2023-01-26 格式:DOCX 页数:47 大小:33.13KB
下载 相关 举报
java test.docx_第1页
第1页 / 共47页
java test.docx_第2页
第2页 / 共47页
java test.docx_第3页
第3页 / 共47页
java test.docx_第4页
第4页 / 共47页
java test.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

java test.docx

《java test.docx》由会员分享,可在线阅读,更多相关《java test.docx(47页珍藏版)》请在冰豆网上搜索。

java test.docx

javatest

【程序1】 

题目:

古典问题:

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

 

1.程序分析:

 兔子的规律为数列1,1,2,3,5,8,13,21.... 

importjava.util.*;

publicclassTest1

{publicstaticvoidmain(String[]args)

{

Scannerin=newScanner(System.in);

//输入你经过的时间

System.out.print("经过多少时间?

?

:

");

inttime=in.nextInt();

int[]a=newint[time];

a[0]=1;

a[1]=1;

for(inti=2;i

{

a[i]=a[i-1]+a[i-2];

}

for(inti=0;i

System.out.println("第"+(i+1)+"月,有兔子"+a[i]+"对\t");

}

}

【程序2】 

题目:

判断101-200之间有多少个素数,并输出所有素数。

 

1.程序分析:

判断素数的方法:

用一个数分别去除2到sqrt(这个数),如果能被整除, 

则表明此数不是素数,反之是素数。

 

importjava.util.*;

importjava.lang.Object;

publicclassTest2

{publicstaticbooleanisPrime(intnum){

for(inti=2;i<=Math.sqrt(num);i++){//程序默认2是素数,当j=2时,循环不执行

if(num%i==0){

returnfalse;

}

}

returntrue;

}

publicstaticvoidmain(Stringargs[])

{

for(inti=101;i<=200;i++)

{

if(Test2.isPrime(i)){

System.out.println(i+"isaprime");

}

}

}

}

【程序3】 

题目:

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

例如:

153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

 

1.程序分析:

利用for循环控制100-999个数,每个数分解出个位,十位,百位。

 

importjava.util.*;

importjava.lang.Object;

publicclassTest3

{

publicstaticbooleanisWater(intnum)

{

inta=num%10;//个位数

intb=(num%100)/10;//十位数

intc=num/100;//百位数

if(num==(Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3)))

{

returntrue;

}

returnfalse;

}

publicstaticvoidmain(Stringargs[])

{

for(inti=100;i<=999;i++)

{if(Test3.isWater(i))

{

System.out.println(i+"是水仙数。

");

}

}

}

}

【程序4】 

题目:

将一个正整数分解质因数。

例如:

输入90,打印出90=2*3*3*5。

 

程序分析:

对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

 

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

 

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

 

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

 

importjava.util.*;

publicclassTest4

{//来自水晶之恋

//爱如空气

publicstaticvoidmain(String[]args)

{

intk=2;

Scannerinput=newScanner(System.in);

System.out.print("请输入一个正整数:

");

intnum=input.nextInt();

if(num<=1)

{

System.out.println("无效的被分解数!

");

return;

}

if(num==k)

{

System.out.println(num+"="+"1*"+num);

}

else

{

System.out.print(num+"=1");

while(num>=k)

{

if(num%k==0)

{

System.out.print("*"+k);

num=num/k;

}

else

{

k=k+1;

}

}

}

}

}

【程序5】 

题目:

利用条件运算符的嵌套来完成此题:

学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

 

1.程序分析:

(a>b)?

a:

b这是条件运算符的基本例子。

 

importjava.util.*;

publicclassTest4

{

publicstaticvoidmain(String[]args){

inta;

Scannerin=newScanner(System.in);

System.out.println("请输入你的成绩(100以内的整数)");

a=in.nextInt();

if(a>=90)

{

System.out.print("你的成绩是:

A级");

}

else{

if(a>=60&&a<=89)

{

System.out.print("你的成绩是:

B级");

}

else{

System.out.print("你的成绩是:

C级");

}

}

}

}

【程序6】 

题目:

输入两个正整数m和n,求其最大公约数和最小公倍数。

 

1.程序分析:

利用辗除法。

importjava.util.*;

publicclassTestCommonNum

{staticlonga=0,b=0,c=0;

publicstaticvoidmain(String[]args){

System.out.println("pleaseinputtwonumbers:

");

Scannerin=newScanner(System.in);

System.out.println("firstnumber:

");

a=in.nextLong();

System.out.println("fsecondnumber:

");

b=in.nextLong();

System.out.println("gongyueshu"+commonMul(a,b));

System.out.println("gongbeishu"+a*b/commonMul(a,b));

}

publicstaticlongcommonMul(longx,longy){

if(x

longtemp=0;

temp=x;

x=y;

y=temp;

}

do

{

c=x%y;

x=y;

y=c;

}

while(c!

=0);

returnx;

}

【程序7】 

题目:

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

 

1.程序分析:

利用while语句,条件为输入的字符不为'\n'. 

importjava.util.*;

publicclassTest4{

publicstaticvoidmain(String[]args){

Strings="sdfjaf-0^&*54y4";

intcharNum=0;

intblankNum=0;

intNum=0;

intotherNum=0;

chara[]=s.toCharArray();

for(inti=0;i

if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z'){

charNum++;

}elseif(a[i]==''){

blankNum++;

}elseif(a[i]>='1'&&a[i]<='9'){

Num++;

}else{

otherNum++;

}

}

System.out.println("字母的个数"+charNum);

System.out.println("空格的个数"+blankNum);

System.out.println("数字的个数"+Num);

System.out.println("其他字符的个数"+otherNum);

}

}

【程序8】 

题目:

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

 

1.程序分析:

关键是计算出每一项的值。

 publicclassTest

{

publicstaticvoidmain(Stringargs[]){

doublea=1.0;//要计算的数字

doubleb=a;//控制变化的递增的大小

doublesum=0.0;//计算结果的总和

doubleCnum=3.0;//要求几个数相加

sum=a;

for(doublei=1.0;i<=Cnum;i++){

doublec=0.0;

c=b*Math.pow(10.0,i);

a+=c;

sum+=a;

}

System.out.println(sum);

}

}

【程序9】 

题目:

一个数如果恰好等于它的因子之和,这个数就称为"完数"。

例如6=1+2+3.编程 找出1000以内的所有完数。

 

classTestWanShu{publicstaticvoidmain(String[]args)

intsum=0;

intsq;

intwanshu=1;

System.out.println(wanshu+"是一个完数");

for(wanshu=2;wanshu<=1000;wanshu++){

sq=wanshu/2;

do{

if(wanshu%sq==0){

sum+=sq;

}

sq--;

}while(sq>0);

if(wanshu==sum){

System.out.println(wanshu+"是一个完数;");

}

sum=0;

}

}

}

【程序10】 

题目:

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?

第10次反弹多高?

 

publicclassTest4

{

publicstaticvoidmain(String[]args){

doublea;

doublesum;

a=100;

sum=0;

for(inti=0;i<10;i++)

{

sum+=2*a;

a=a/2;

}

System.out.println("第10次落地时,共经过:

"+(sum-100)+"米");

System.out.println("第10次反弹"+a+"米");

}

}

【程序11】 

题目:

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?

都是多少?

 

1.程序分析:

可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去 掉不满足条件的排列

 

publicclassSubject11{

publicstaticvoidmain(String[]args){

  intcount=0;

  for(inti=1;i<5;i++)

  {

   for(intj=1;j<5;j++)

   {

    for(intk=1;k<5;k++)

    {

     if(i!

=j&&i!

=k&&j!

=k)

     {

      count++;

      System.out.println(i*100+j*10+k);

     }

    }

   }

  }

  System.out.println("由1,2,3,4共可以组成"+count+"个互不相同且无重复数字的三位数!

");

}

}

//来自

【程序12】 

题目:

企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

 

1.程序分析:

请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

 

importjava.util.*;

publicclassTest4

{

publicstaticvoidmain(String[]args)

{

longreward;

Scannerin=newScanner(System.in);

System.out.println("输入当月利润:

");

reward=in.nextLong();

doubleb;

longa=reward;

if(a<=10000&&a>0){

b=(long)a*10/100;

System.out.println("你可以获得奖金:

"+b);

}

elseif(a>100000&&a<=200000){

b=(long)(a-100000)*7.75/100+(100000*10/100);

System.out.println("你可以获得奖金:

"+b);

}

elseif(a>200000&&a<=400000){

b=(long)(a-200000)*5/100+(100000*7.5/100)+(100000*10/100);

System.out.println("你可以获得奖金:

"+b);

}

elseif(a>400000&&a<=600000){

b=(long)(a-400000)*3/100+(200000*5/100)+(200000*7.5/100)+(100000*10/100);

System.out.println("你可以获得奖金:

"+b);

}

elseif(a>600000&&a<=1000000){

b=(long)(a-600000)*1.5/100+(200000*5/100)+(200000*3/100)+(200000*7.5/100)+(100000*10/100);

System.out.println("你可以获得奖金:

"+b);

}

elseif(a>1000000){

b=(long)(a-1000000)*1.5/100+(200000*5/100)+(400000*1.5/100)+(200000*3/100)+(200000*7.5/100)+(100000*10/100);

System.out.println("你可以获得奖金:

"+b);

}

else{

System.out.println("你的输入有错误:

");

}

}

}

【程序13】 

题目:

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

 

1.程序分析:

在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

请看具体分析:

 

publicclassTestFullSqrt

{

publicstaticvoidmain(String[]args)

{

for(longi=1;i<100000;i++)

{

if(Math.sqrt(i+100)%1==0&&Math.sqrt(i+268)%1==0)

{

System.out.println(i+"满足加上100后是一个完全平方数,再加上168又是一个完全平方数");

}

}

}

}

【程序14】 

题目:

输入某年某月某日,判断这一天是这一年的第几天?

 

1.程序分析:

以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

 

importjava.util.*;

publicclassTestCommonNum

{staticlonga=0,b=0,c=0;

publicstaticvoidmain(String[]args){

System.out.println("pleaseinputtwonumbers:

");

Scannerin=newScanner(System.in);

System.out.println("firstnumber:

");

a=in.nextLong();

System.out.println("fsecondnumber:

");

b=in.nextLong();

System.out.println("gongyueshu"+commonMul(a,b));

System.out.println("gongbeishu"+a*b/commonMul(a,b));

}

publicstaticlongcommonMul(longx,longy){

if(x

longtemp=0;

temp=x;

x=y;

y=temp;

}

do

{

c=x%y;

x=y;

y=c;

}

while(c!

=0);

returnx;

}

}

【程序15】 

题目:

输入三个整数x,y,z,请把这三个数由小到大输出。

 

1.程序分析:

我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

 

importjava.util.*;

publicclassTest4

{

publicstaticvoidmain(String[]args)

{intx;

inty;

intz;

Scannerin=newScanner(System.in);

System.out.print("请输入x的值:

");

x=in.nextInt();

System.out.print("请输入y的值:

");

y=in.nextInt();

System.out.print("请输入z的值:

");

z=in.nextInt();

System.out.print("x,y,z从小到大的顺序是:

");

if(x

{if(x

if(y

System.out.println(x+""+y+""+z);

}else{

System.out.println(x+""+z+""+y);

}

}else{

System.out.println(z+""+x+""+y);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1