java经典程序100例-.pdf
《java经典程序100例-.pdf》由会员分享,可在线阅读,更多相关《java经典程序100例-.pdf(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、java 经典程序 100 例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(year300
2、0)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 级8089 B 级7079 C 级6069 D 级60 分以下E 级import java.util.Scanner;class Mark public static void main(Str
3、ing args)System.out.println(请输入一个分数);/定义输入的分数为“mark”,且分数会有小数double mark;Scanner scanner=new Scanner(System.in);mark=scanner.nextDouble();/判断是否有输入错误。if(mark100)System.out.println(输入有误!);System.exit(0);/*判断分数的等级90 分以上者A 级,8089 分者B 级,7079 分者C 级,6069 者 D 级,60 分以下E 级*/if(mark=90)System.out.println(this m
4、ark 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)
5、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
6、=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(Stringargs)System.out.println();for(int j=1;j10;j+)for(int k=1;k10;k+)/老师的做法,判断语句里的kj)break;/此处用continue 也可
7、以,只是效率低一点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 su
8、m;number1000;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;/定义
9、输入的a int howMany;/定义最后的一项有多少个数字Scanner scanner=new Scanner(System.in);System.out.println(请输入一个19 的 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
10、已经变化了。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)
11、;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 44/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
12、 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 规律:一个数等于前两个数之和/
13、计算斐波那契数列(Fibonacci)的第 n 个值public class Fibonacci public static void main(String args)int n=Integer.parseInt(args0);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)的
14、第 n 个值/并把整个数列打印出来public class FibonacciPrint public static void main(String args)int n=Integer.parseInt(args0);FibonacciPrint t=new FibonacciPrint();for(int i=1;i=n;i+)t.print(i);public void print(int n)int n1=1;/第一个数int n2=1;/第二个数int sum=0;/和if(n=0)System.out.println(参数错误!);return;if(n=2)sum=1;else
15、 for(int i=3;i=n;i+)sum=n1+n2;n1=n2;n2=sum;System.out.println(sum);13、求 1-1/3+1/5-1/7+1/9.的值。a,求出前 50 项和值。b,求出最后一项绝对值小于1e-5 的和值。15、在屏幕上打印出n 行的金字塔图案,如,若n=5,则图案如下:*/打印金字塔图案public class PrintStar public static void main(String args)int col=Integer.parseInt(args0);for(int i=1;i=col;i+)/i表示行数/打印空格for(int
16、 k=0;kcol-i;k+)System.out.print();/打印星星for(int m=0;m2*i-1;m+)System.out.print(*);System.out.println();16、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和打印出所有的可能/任何一个大于六的偶数可以拆分成两个质数的和/打印出所有的可能public class Gedebahe public static void main(String args)int num=Integer.parseInt(args0);if(num=6)System.out.println(参数错误!);ret
17、urn;if(num%2!=0)System.out.println(参数错误!);return;Gedebahe g=new Gedebahe();/1 不是质数,2 是偶数,因此从 3 开始循环for(int i=3;i=num/2;i+)if(i%2=0)/如果为偶数,退出本次循环continue;/当 i 与 num-i 都为质数时,满足条件,打印if(g.isPrime(i)&g.isPrime(num-i)System.out.println(i+(num-i)+=+num);第 4 章 数组1.定义一个int 型的一维数组,包含10 个元素,分别赋一些随机整数,然后求出所有元素的
18、最大值,最小值,平均值,和值,并输出出来。class ArrayNumber public static void main(String args)int arrayNumber;arrayNumber=new int10;System.out.println(以下是随机的10 个整数:);/填入随机的10 个整数for(int i=0;iarrayNumber.length;i+)arrayNumberi=(int)(100*Math.random();System.out.print(arrayNumberi+);System.out.println();int max=arrayNum
19、ber0;int min=arrayNumber0;int sum=0;for(int i=0;iarrayNumber.length;i+)if(max arrayNumberi)min=arrayNumberi;/求最小值sum+=arrayNumberi;System.out.println(其中Max=+max+,Min=+min+,Sum=+sum+,Avg=+sum/10.0);2.定义一个int 型的一维数组,包含10 个元素,分别赋值为110,然后将数组中的元素都向前移一个位置,即,a0=a1,a1=a2,最后一个元素的值是原来第一个元素的值,然后输出这个数组。3.定义一个in
20、t 型的一维数组,包含40 个元素,用来存储每个学员的成绩,循环产生40 个0100 之间的随机整数,将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输出出来。4.(选做)承上题,将这40 个成绩按照从高到低的顺序输出出来。5,(选做)编写程序,将一个数组中的元素倒排过来。例如原数组为1,2,3,4,5;则倒排后数组中的值为 5,4,3,2,1。6,要求定义一个int 型数组 a,包含 100 个元素,保存 100 个随机的4 位数。再定义一个int 型数组 b,包含 10 个元素。统计a 数组中的元素对10 求余等于0 的个数,保存到 b0中;对 10 求余等于 1 的个数,保
21、存到b1中,依此类推。class Remain public static void main(String args)int a=new int100;/保存 100 个随机 4 位数到a 中for(int i=0;i a.length;i+)ai=(int)(1000*Math.random();/统计a 数组中的元素对10 求余的各个的数目int b=new int10;int k,sum;for(int j=0;j b.length;j+)for(k=0,sum=0;k 1.0E-4|N%2=0|N0)System.out.println(输入出错,格局只能是正奇数。请重新输入);el
22、se break;/老师的九宫格填写方法int result=new intNN;/定义保存九宫格的数组int row=0;/行 初始位置int col=N/2;/列 初始位置,因为列由 0 开始,故N/2 是中间位置for(int i=1;i=N*N;i+)result rowcol=i;row-;col+;if(row=N)col-;row+=2;/行列都越界else if(row=N)col=0;/列越界else if(resultrowcol!=0)col-;row+=2;/有冲突/打印出九宫格for(int i=0;iN;i+)for(int j=0;jN;j+)System.out
23、.print(resultij+t);System.out.println();/我个人的填格方式int result2=new intNN;/为免冲突,重新new 一个数组result2N/2N/2=(N*N+1)/2;/先把中间值赋予中间位置row=0;/定义行及列的初始赋值位置。之前赋值的for 对两个值有影响,故需重新定位col=N/2;for(int i=1;i=N*N/2;i+)result2rowcol=i;/下面这句是把跟i 对应的值放到格局对应的位置上result2N-row-1N-col-1=N*N+1-i;row-;col+;if(row=N)col=0;/列越界else
24、 if(result2rowcol!=0)col-;row+=2;/有冲突/这方法不可能出现行列两边都越界的情况,详情需要数学论证 System.out.println();/再次打印出九宫格,以对比验证for(int i=0;iN;i+)for(int j=0;jN;j+)System.out.print(result2ij+t);System.out.println();9,求一个 3*3 矩阵对角线元素之和10,打印杨辉三角11.约梭芬杀人法把犯人围成一圈,每次从固定位置开始算起,杀掉第7 个人,直到剩下最后一个。11_2、用数组实现约瑟夫出圈问题。n 个人排成一圈,从第一个人开始报数,
25、从1 开始报,报到 m 的人出圈,剩下的人继续开始从1 报数,直到所有的人都出圈为止。对于给定的n,m,求出所有人的出圈顺序。12.判断随机整数是否是素数产生 100 个 0-999 之间的随机整数,然后判断这100 个随机整数哪些是素数,哪些不是?public class PrimeTest public static void main(String args)for(int i=0;i100;i+)int num=(int)(Math.random()*1000);PrimeTest t=new PrimeTest();if(t.isPrime(num)System.out.printl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 经典 程序 100
限制150内