5个java逻辑小应用题

【程序1】   
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   
//这是一个菲波拉契数列问题
publicclassTest1 {

public staticvoidmain(String[] args){

System.out.println("1个月的兔子对数:    1");

System.out.println("2个月的兔子对数:    1");

int f1 = 1, f2 = 1, f, M=24;

    for(int i=3; i<=M; i++) {

     f = f2;

     f2 = f1 + f2;

     f1 = f;

     System.out.println("" + i +"个月的兔子对数: "+f2);

         }

}

}

【程序2】   
题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。   

import java.util.Vector;

 

public classTest2

   publicstaticvoidmain(String[] args

   { 

        int x=0; 

        Vector v = new Vector();//集合,用来装所有的素数 

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

        { 

            boolean b=true;//标签为b为真 

            for(int j=2;j<i;j++) 

            { 

                if(i%j==0)//求余数是否为

                { 

                    b = false;//如果为0, 将标签设置为false 

                    break//可以整除就跳出这个循环 

                } 

            } 

            if(b==true)// 

            { 

                v.add(i);//将符合要求的i加到集合里 

                x++; // 素数个数加

            } 

        } 

        System.out.println("100200中间有 "+x+" 个素数"); 

        System.out.println("素数为:"+v); 

   } 

【程序3】   
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。 

 

public classTest3 {

public staticvoidmain(String args[]){

   int i,j,k,n;

   for(n=100;n<=999;n++){

      i=n/100;    j=(n/10)%10;

      k=n%10;

      if(n==i*i*i+k*k*k+j*j*j){

         System.out.println(n);

      }

   }

  

  

}

}

 

【程序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的值,重复执行第一步。  

public classTest4 {

 

public staticvoidmain(String[] args){

int num=90;

int k = 2;

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

while (num> k) {

if (num% k == 0) {

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

num= num/ k;

}

if (num% k != 0) {

k++;

}

}

System.out.println(k);

}

}

【程序5】   
题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。   
importjava.util.*; 

public classTest5 {   

public staticvoidmain(String[] args){ 

while(true){ 

System.out.print("请输入分数: "); 

Scanner s=new Scanner(System.in);           

System.out.println(); 

float score=s.nextFloat(); 

System.out.println((score>=90)?'A':((score>=60)?'B':'C'));

        } 

}    

 } 

 

你可能感兴趣的:(5个java逻辑小应用题)