1、编写程序,判断给定的某个年份是否是闰年。
闰年的判断规则如下:
(1)若某个年份能被4整除但不能被100整除,则是闰年。
(2)若某个年份能被400整除,则也是闰年。
/*** 1,编写程序,判断给定的某个年份是否是闰年。* 闰年的判断规则如下:* (1)若某个年份能被4整除但不能被100整除,则是闰年。* (2)若某个年份能被400整除,则也是闰年。*/
package com.demo3;
import java.util.Scanner;public class Practice1 {public static void main(String[] args){System.out.println("请输入年份");int year; //定义输入的年份名字为“year”Scanner scanner = new Scanner(System.in);year = scanner.nextInt();if(year <0||year>3000){System.out.println("年份有误,程序退出!");System.exit(0);} else if ((year%4==0)&&(year%100!=0)||(year%400==0)) {System.out.println(year+" is bissextitle");}else {System.out.println(year+" is not bissextitle");}}}
2、给定一个百分制的分数,输出相应的等级。
90分以上 A级
80~89 B级
70~79 C级
60~69 D级
60分以下 E级
/*** 给定一个百分制的分数,输出相应的等级。* 90分以上 A级* 80~89 B级* 70~79 C级* 60~69 D级* 60分以下 E级*/package com.demo3;import java.util.Scanner;public class Practice2 {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 的和值。
/*** 编写程序求 1+3+5+7+……+99 的和值*/
package com.demo3;public class Practice3 {public static void main(String[] args){int number = 1; //初始值1,以后再+2递增上去int sum1 = 0,sum2=0,sum3=0;//1+2+3+4+...+100的值for(int i=1;i<=100;i++){sum1 = sum1+i;}System.out.println("1+2+3+4+...+100值为:"+sum1);for(int j=1;j<100;j+=2){sum2 = sum2+j;}System.out.println("1+3+5+7+...+99值为:"+sum2);for(int t=2;t<=100;t+=2){sum3 = sum3+t;}System.out.println("2+4+6+8+...+100值为:"+sum3);}
}
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
/*** 利用for循环打印 9*9 表*/
package com.demo3;public class Practice4 {public static void main(String[] args){System.out.println();for(int i=1;i<10;i++){for(int j=1;j<10;j++){if(j>i)break;System.out.print(" "+j+"*"+i+"="+i*j);}System.out.println();}}
}
5、输出所有的水仙花数
所谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身,
例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
/*** 输出所有的水仙花数,所谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身,* 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5*/
package com.demo3;public class Practice5 {public static void main(String[] args){System.out.println("以下是所有的水仙花数:");int number = 100; //由于水仙花是三位数所以由100起算int i,j,k; //i j k分别为三位数的百位 十位 个位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+"是一个水仙花数");}}}
}
6、求 a+aa+aaa+.......+aaaaaaaaa=?
其中a为1至9之中的一个数,项数也要可以指定。
/*** 求 a+aa+aaa+.......+aaaaaaaaa=?* 其中a为1至9之中的一个数,项数也要可以指定。*/
package com.demo3;import java.util.Scanner;public class Practice6 {public static void main(String[] args){int a; //定义输入的数字int cnt; //定义最后的一项有多少个数字Scanner scanner = new Scanner(System.in);System.out.println("请输入一个1~9的值进行相加:");a=scanner.nextInt();System.out.println("请问要相加多少项:");cnt= scanner.nextInt();int sum = 0;int a1 = a;//用来保存a1的初始值for(int i=1;i<=cnt;i++){sum = sum+a;a=a*10+a1; //这表示a的下一项//每次 a 的下一项都等于前一项*10,再加上刚输入时的 a ;注意,这时的 a 已经变化了。}System.out.println("此时的值为:"+sum);}
}
7、求 2/1+3/2+5/3+8/5+13/8.....前20项之和?
/*** 求 2/1+3/2+5/3+8/5+13/8.....前20项之和?*/
package com.demo3;public class Practice7 {public static void main(String[] args){double sum=0;double fenzi =2.0,fenmu=1.0; // 初始的分子 (fenZi)=2,分母(fenMu)=1for(int i=1;i<=20;i++){sum = sum+fenzi/fenmu;fenmu = fenzi; //下一项的分母 = 上一项的分子fenzi=fenzi+fenmu; //下一项的分子 = 上一项的分子加分母}System.out.println("2/1+3/2+5/3+8/5+13/8.....前20项之和:"+sum);}
}
8、利用程序输出如下图形:
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
/*** 利用程序输出如下图形:* ** * * ** * * * * ** * * * * * * ** * * * * ** * * ** **/package com.demo3;public class Practice8 {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();//换行}}
}
9、计算圆周率
PI=4-4/3+4/5-4/7.......
打印出第一个大于 3.1415小于 3.1416的值
/*** 计算圆周率* PI=4-4/3+4/5-4/7.......* 打印出第一个大于 3.1415小于 3.1416的值*/package com.demo3;public class Practice9 {public static void main(String[] args){double pi = 0; //初始定义值double fenzi = 4; //分子为4double fenmu = 1; //第一个4,可看作分母为1 的分式,以后的分母每次递增2for (int i=0;i<=1000000000;i++){ 运行太久,可以减少循环次数会快很多,只是精确度小些pi = pi+fenzi/fenmu;fenzi =-1*fenzi; //每项分子的变化是+4,-4,+4,-4 ....fenmu = fenmu+2; //分母的变化是1,3,5,7, .... 每项递加2}System.out.println(pi);}
}
此输出结果并不精确,圆周率为无限不循环小数;
10、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值
1 1 2 3 5 8 13 21 34
规律:一个数等于前两个数之和
//计算斐波那契数列(Fibonacci)的第n个值