文章目录
- 文章介绍
- 项目结构
- 1.案例Algorithm01
- 2.案例Algorithm02
- 3.案例Algorithm03
- 4.案例Algorithm04
- 5.案例Algorithm05
文章介绍
期末复习重点案例(算法题)
项目结构
1.案例Algorithm01
要求:使用冒泡排序算法对数组a={9, 7, 4, 6, 3, 1,10},按由小到大的规律排序数组中的元素。
packageProgramDesign;publicclassAlgorithm05{publicstaticvoidmain(String[]args){int[]a={9,7,4,6,3,1,10};System.out.println("排序前的数组:");printArray(a);bubbleSort(a);System.out.println("\n排序后的数组(从小到大):");printArray(a);}publicstaticvoidbubbleSort(int[]arr){intn=arr.length;for(inti=0;i<n-1;i++){booleanswapped=false;for(intj=0;j<n-1-i;j++){if(arr[j]>arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;swapped=true;}}if(!swapped){break;}}}publicstaticvoidprintArray(int[]arr){for(intnum:arr){System.out.print(num+" ");}}}运行结果
2.案例Algorithm02
要求:输出100到300间所有能被7整除且不能被3整除的整数,每行输出5个。
packageProgramDesign;publicclassAlgorithm02{publicstaticvoidmain(String[]args){intcount=0;for(intnum=100;num<=300;num++){if(num%7==0&&num%3!=0){System.out.print(num+"\t");count++;if(count==5){System.out.println();count=0;}}}}}运行结果
3.案例Algorithm03
要求:计算3到11之间(包括3和11)所有整数的阶乘和。
publicclassAlgorithm03{publicstaticvoidmain(String[]args){longsum=0;for(inti=3;i<=11;i++){longfactorial=1;for(intj=1;j<=i;j++){factorial*=j;}sum+=factorial;System.out.println(i+"! = "+factorial);}System.out.println("\n3到11之间所有整数的阶乘和 = "+sum);}}运行结果
4.案例Algorithm04
要求:从键盘输入一个整数n,使用while设计程序计算从1到n的和。
packageProgramDesign;importjava.util.Scanner;publicclassAlgorithm04{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);System.out.print("请输入一个整数n:");intn=scanner.nextInt();intsum=0;inti=1;if(n<=0){System.out.println("输入的数需大于0,无法计算1到n的和!");}else{while(i<=n){sum+=i;i++;}System.out.println("1到"+n+"的和为:"+sum);}scanner.close();}}运行结果
5.案例Algorithm05
要求:从键盘输入一个整数n,使用while设计程序计算从1到n的和。
packageProgramDesign;importjava.util.Scanner;publicclassAlgorithm05{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);System.out.print("请输入一个4位整数:");intn=scanner.nextInt();if(n<1000||n>9999){System.out.println("输入的数不是4位整数!程序结束。");scanner.close();return;}inttemp=n;intsum=0;intcount=0;while(count<4){intdigit=temp%10;sum+=digit;temp=temp/10;count++;}System.out.println("4位整数"+n+"的各位数字和为:"+sum);scanner.close();}}运行结果