java五十道题目.docx

上传人:b****6 文档编号:6263678 上传时间:2023-01-04 格式:DOCX 页数:15 大小:21.11KB
下载 相关 举报
java五十道题目.docx_第1页
第1页 / 共15页
java五十道题目.docx_第2页
第2页 / 共15页
java五十道题目.docx_第3页
第3页 / 共15页
java五十道题目.docx_第4页
第4页 / 共15页
java五十道题目.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

java五十道题目.docx

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

java五十道题目.docx

java五十道题目

【程序1】

题目:

古典问题:

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

程序分析:

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

publicclassA11Prog{

    publicstaticvoidmain(String[]args){

        int[]array=newint[20];

        array[0]=1;

        array[1]=1;

        System.out.println("1"+":

"+array[0]);

        for(inti=1;i

            array[i+1]=array[i]+array[i-1];

            System.out.println(i+1+":

"+array[i]);

        }

    }

}

【程序2】

题目:

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

程序分析:

判断素数的方法:

用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

publicclassA12Prime{

    publicstaticvoidmain(String[]args){

        intn=200;

        for(inti=101;i

            if(isPrime(i)){

                System.out.print(i+"");

            }

        }

    }

    privatestaticbooleanisPrime(intn){

        booleanflag=true;

        for(inti=2;i<=Math.sqrt(n);i++){

            if((n%i)==0){

                flag=false;

                break;

            }else{

                flag=true;

            }

        }

        returnflag;

    }

}

【程序3】

题目:

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

例如:

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

程序分析:

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

publicclassA13Shui{

    publicstaticvoidmain(String[]args){

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

            intx,y,z,m,n;

            x=i%10;

            y=i/10;

            z=y/10;

            m=y%10;

            n=x*x*x+z*z*z+m*m*m;

            if(i==n){

                System.out.print(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的值,重复执行第一步。

publicclassA14Pro{

    publicstaticvoidmain(String[]args){

        intn=156;

        intk=2;

        System.out.print(n+"=");

        while(n>k){

            if(n%k==0){

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

                n=n/k;

            }

            if(n%k!

=0){

                k++;

            }

        }

        System.out.println(k);

    }

}

【程序5】

题目:

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

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

程序分析:

(a>b)?

a:

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

importjava.util.Scanner;

publicclassA15Cheng{

    publicstaticvoidmain(String[]args){

        System.out.println("请输入数字");

        Scannerin=newScanner(System.in);

        intn=in.nextInt();

        grade(n);

    }

    privatestaticvoidgrade(intn){

        if(n>100||n<0)

            System.out.println("输入无效,请重新运行输入");

        else{

            charb=(n>89)?

'A':

'B';

            charc=(n>60)?

b:

'C';

            System.out.println(n+":

"+c);

        }

    }

}

【程序6】

题目:

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

程序分析:

利用辗除法。

*求最大公约数

publicclassA16ZhanChu{

    publicstaticvoidmain(String[]args){

        intm=128;

        intn=64;

        ints=m*n;

        intr=m%n;

        

        //辗除法

        do{

            r=m%n;

            m=n;

            n=r;

        }while(r!

=0);

        System.out.println(m+","+s/m);

    }

}

【程序7】

题目:

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

程序分析:

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

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

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

publicclassA17Char{

    publicstaticvoidmain(String[]args){

        Stringstr="Ilove234迪欧9Java";

        intcountNum=0;//统计数字的个数

        intcountChar=0;//统计英文字母的个数

        intcountSpace=0;//统计空格的个数

        intcountOthers=0;//统计其它字符的个数

        for(inti=0;i

            charc=str.charAt(i);

            if(c>='0'&&(int)c<='9'){

                countNum++;

            }elseif((c>='a'&&c<='z')||(c>='A'&&c<='Z')){

                countChar++;

            }elseif(c==''){

                countSpace++;

            }else{

                countOthers++;

            }

        }

        System.out.println(countNum+","+countChar+","+countSpace+","

                +countOthers);

    }

}

【程序8】

题目:

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

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

程序分析:

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

importjava.util.Scanner;

publicclassA18Sum{

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

     

         publicstaticvoidmain(String[]args){

        System.out.println("请输入加数的个数");

        Scannerin=newScanner(System.in);

        intt=in.nextInt();

        sum(t);

    }

    privatestaticvoidsum(intt){

        intarray[]=newint[t];

        inta=2;

        array[0]=a;

        ints=array[0];

        for(inti=1;i

            array[i]=array[i-1]*10+a;

            s+=array[i];

        }

        System.out.println(s);

    }

}

【程序9】

题目:

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

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

publicclassA19WanShu{

    

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

编程找出1000以内的所有完数。

    

       publicstaticvoidmain(String[]args){

        for(inti=0;i<1000;i++){

            if(isWanshu(i)){

                System.out.print(i+"");

            }

        }

    }

    privatestaticbooleanisWanshu(inti){

        booleanflag=false;

        intsum=1;

        for(intk=2;k<=i/2;k++){

            if(i%k==0){

                sum+=k;

            }

        }

        if(sum==i){

            flag=true;

        }

        returnflag;

    }

}

 

【程序10】

题目:

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

第10次反弹多高?

publicclassA20FanTan{

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

第10次反弹多高?

        publicstaticvoidmain(String[]args){

        floatarray[]=newfloat[10];

        floats=0;

        floatsum=array[0];

        for(inti=1;i

            array[0]=150;//第一次下落反弹的路程

            array[i]=array[i-1]/(i+1);//第i+1次下落反弹的路程

            sum+=array[i];

            s=array[9]/3;

        }

        System.out.println("第10次落地共经过"+sum+"米;第10次反弹"+s+"米");

    }

}

【程序11】

题目:

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

都是多少?

程序分析:

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

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

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

都是多少?

publicclassA21San{

    publicstaticvoidmain(String[]args){

        intcounter=0;

        intn=0;

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

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

                if(j==i){

                    continue;

                }

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

                    if(k!

=i&&k!

=j){

                        n=i*100+j*10+k;

                        counter++;

                        System.out.print(n+"");

                    }

                }

            }

        }

        System.out.println();

        System.out.println("符合条件的数共:

"+counter+"个");

    }

}

【程序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,求应发放奖金总数?

importjava.util.Scanner;

publicclassA22Profit{

    publicstaticvoidmain(String[]args){

        System.out.println("请输入数字");

        Scannerin=newScanner(System.in);

        intn=in.nextInt();

        avail(n);

    }

    privatestaticvoidavail(intn){

        doublesum=0;

        if(n<=10){

            sum=n*0.1;

        }

        if(n>10&&n<=20){

            sum=10*0.1+(n-10)*0.075;

        }

        if(n>20&&n<=40){

            sum=10*0.1+10*0.075+(n-20)*0.05;

        }

        if(n>40&&n<=60){

            sum=10*0.1+10*0.075+20*0.05+(n-40)*0.03;

        }

        if(n>60&&n<=100){

            sum=10*0.1+10*0.075+20*0.05+20*0.03+(n-60)

                    *0.015;

        }

        if(n>100){

            sum=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015

                    +(n-100)*0.01;

        }

        System.out.println(sum);

    }

}

【程序13】

题目:

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

publicclassA23prefe{

    publicstaticvoidmain(String[]args){

        for(inti=0;i<=100000;i++){

            if(isPrefe(i)){

            }

        }

    }

    privatestaticbooleanisPrefe(inti){

        booleanflag=true;

        for(intj=1;j<=100;j++){

            if(j==Math.sqrt(i+100)){

                flag=false;

                if(flag==false){

                    for(intj2=j;j2<=100;j2++){

                        if(j2==Math.sqrt(i+268)){

                            System.out.print(i+"");

                            continue;

                        }

                    }

                }

            }

        }

        returnflag;

    }

}

 

【程序14】

题目:

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

importjava.util.Scanner;

publicclassA24Judge{

    publicstaticvoidmain(String[]args){

        System.out.print("请输入当前日期,如:

2010-03-08");

        Scannerin=newScanner(System.in);

        Stringstr=in.next();

        judge(str);

    }

    privatestaticvoidjudge(Stringstr){

        Strings[]=str.split("-");

        intyear=Integer.parseInt(s[0]);

        intmonth=Integer.parseInt(s[1]);

       

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

当前位置:首页 > 表格模板 > 合同协议

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

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