Exercise for Core Jave(Core Jave 练习题)

本文提供了多个Java编程练习题目,包括判断闰年、评分等级转换、等差数列求和、九九乘法表、水仙花数计算、斐波那契数列、打印特殊图形、计算圆周率等,旨在提升Java编程能力。
摘要由CSDN通过智能技术生成

1,编写程序,判断给定的某个年份是否是闰年。

      闰年的判断规则如下:

      (1)若某个年份能被4整除但不能被100整除,则是闰年。

      (2)若某个年份能被400整除,则也是闰年。


import java.util.Scanner;

class Bissextile{

    public static void main(String[] arge){

        System.out.print("请输入年份");

    int year;    //定义输入的年份名字为“year”

    Scanner scanner = new Scanner(System.in);

    year = scanner.nextInt();

    if (year<0||year>3000){

        System.out.println("年份有误,程序退出!");

        System.exit(0);

        }

    if ((year%4==0)&&(year%100!=0)||(year%400==0)) 

        System.out.println(year+" is bissextile");

    else 

        System.out.println(year+" is not bissextile ");

    }

}



2,给定一个百分制的分数,输出相应的等级。

        90分以上        A级

        80~89          B级

        70~79          C级

        60~69          D级

        60分以下        E级


import java.util.Scanner;

class Mark{

    public static void main(String[] args){

        System.out.println("请输入一个分数");

        //定义输入的分数为“mark”,且分数会有小数

        double mark;

        Scanner scanner = new Scanner(System.in);

        mark = scanner.nextDouble();


        //判断是否有输入错误。

        if(mark<0||mark>100){

           System.out.println("输入有误! ");

           System.exit(0);

        }

        /*判断分数的等级

        90分以上者A级, 80~89分者 B级,70~79分者 C级, 60~69者 D级,60分以下 E级 */

        if (mark>=90) System.out.println("this mark is grade \'A\' ");

        else if (mark>=80) System.out.println("this mark is grade \'B\' ");

        else if (mark>=70) System.out.println("this mark is grade \'C\' ");

        else if (mark>=60) System.out.println("this mark is grade \'D\' ");

        else  System.out.println("this mark is grade \'E\' ");

    }

}



3,编写程序求 1+3+5+7+……+99 的和值。


class he{

    public static void main(String[] args){

        int number = 1;  //初始值1,以后再+2递增上去

        int sum = 0;

        for ( ; number <100; number+=2 ){ sum += number; }

        System.out.println("1+3+5+7+……+99= " +sum);

    }

}



4、利用for循环打印 9*9  表?

1*1=1

1*2=2  2*2=4

1*3=3  2*3=6  3*3=9

1*4=4  2*4=8  3*4=12  4*4=16

1*5=5  2*5=10  3*5=15  4*5=20  5*5=25

1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36

1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49

1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64

1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81


//循环嵌套,打印九九乘法表

public class NineNine{

    public static void main(String[]args){

    System.out.println();

    for (int j=1;j<10;j++){

        for(int k=1;k<10;k++) {   //老师的做法,判断语句里的 k<=j,省去下列的if语句。

            if (k>j) break;       //此处用 continue也可以,只是效率低一点

            System.out.print(" "+k+"X"+j+"="+j*k);

         }

        System.out.println();

        }

    }

}


 



6、输出所有的水仙花数,把谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身,

   例如: 153 = 1*1*1 + 3*3*3 + 5*5*5  


class DafodilNumber{

    public static void main(String[] args){

        System.out.println("以下是所有的水仙花数");

    int number = 100;     // 由于水仙花数是三位数,故由100开始算起


    int i, j, k;     // i  j  k  分别为number 的百位、十位、个位

    for (int sum; number<1000; number++){

        i=number/100;  j=(number-i*100)/10;  k=number-i*100-j*10;

        sum=i*i*i+j*j*j+k*k*k;

        if (sum==number) System.out.println(number+" is a dafodil number! ");

        }

    }

}



7、求  a+aa+aaa+.......+aaaaaaaaa=?

      其中a为1至9之中的一个数,项数也要可以指定。


import java.util.Scanner;

class Multinomial{

    public static void main(String[] args){

        int  a;      //定义输入的 a 

        int  howMany;   //定义最后的一项有多少个数字

        Scanner scanner = new Scanner(System.in);

            System.out.println("请输入一个 1~9 的 a 值");

        a = scanner.nextInt();

            System.out.println("请问要相加多少项?");

        howMany = scanner.nextInt();

        int sum=0;

        int a1=a;  // 用来保存 a 的初始值

        for (int i=1; i<=howMany; i++){

            sum+= a; 

            a = 10*a +a1;   // 这表示a 的下一项

        // 每次 a 的下一项都等于前一项*10,再加上刚输入时的 a ;注意,这时的 a 已经变化了。

            }

        System.out.println("sum="+sum);

    }

}



8、求 2/1+3/2+5/3+8/5+13/8.....前20项之和?


class Sum{

    public static void main(Sting[] args){

        double sum=0;

        double fenZi=2.0, fenMu=1.0;    //初始的分子 (fenZi)=2,分母(fenMu)=1 

        for(int i=1; i<=20; i++){

            sum += fenZi / fenMu ;

            fenMu = fenZi;           //下一项的分母 = 上一项的分子

            fenZi += fenMu;         //下一项的分子 = 上一项的分子加分母

        }

        System.out.println("sum= "sum);

    }

}



9、利用程序输出如下图形:

   *

   * * *

   * * * * *

   * * * * * * *

   * * * * *

   * * *

   *


class Asterisk{ 

    public static void main(String[] args){

        for (int i=1; i<=13; i+=2){

            for(int j=1; j<=i && i+j<= 14; j++){System.out.print("* ");}

            System.out.println();  // 换行

        }

    }

}



11、计算圆周率

  PI=4-4/3+4/5-4/7.......

  打印出第一个大于 3.1415小于 3.1416的值


class Pi {

    public static void main(String[] args){

        double pi =0;  //定义初始值

        double fenZi = 4;    //分子为4 

        double fenMu = 1;  //第一个4,可看作分母为1 的分式,以后的分母每次递增2

        for (int i = 0; i < 1000000000; i++){ //运行老久,减少循环次数会快很多,只是精确度小些

            pi += (fenZi/fenMu) ;

            fenZi *= -1.0;    //每项分子的变化是+4,-4,+4,-4 ....

            fenMu += 2.0;    //分母的变化是1,3,5,7, ....   每项递加2

            }

        System.out.println(pi);

    }

}

输出结果为pi = 3.1415926525880504,应该不精确



12、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值

  1  1  2  3  5  8  13  21  34

  规律:一个数等于前两个数之和

//计算斐波那契数列(Fibonacci)的第n个值

public class Fibonacci{

    public static void main(String args[]){

        int n = Integer.parseInt(args[0]);

        int n1 = 1;//第一个数

        int n2 = 1;//第二个数

        int sum = 0;//和

        if(n<=0){

            System.out.println("参数错误!");

            return;

        }

        if(n<=2){

            sum = 1;            

        }else{

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

                sum = n1+n2;

                n1 = n2;

                n2 = sum;

            }

        }

        System.out.println(sum);

    }

}



//计算斐波那契数列(Fibonacci)的第n个值

//并把整个数列打印出来

public class FibonacciPrint{

    public static void main(String args[]){

        int n = Integer.parseInt(args[0]);

        FibonacciPrint t = new FibonacciPrint();

        for(int i=1;i<=n;i++){

            t.print(i);

        }

    }

    public void print(int n){

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值