文章目录
- 项目结构
- 一、案例Algorithm01
- 二、案例Algorithm02
- 三、案例Algorithm03
- 四、案例Algorithm04
- 五、案例Algorithm05
项目结构
提示:以下是本篇文章正文内容,下面案例可供参考
一、案例Algorithm01
要求:使用冒泡排序算法对数组a={9, 7, 4, 6, 3, 1,10},按由小到大的规律排序数组中的元素。
代码如下:
public class maopao{publicstaticvoidmain(String[]args){int[]a={9,7,4,6,3,1,10};// 直接打印排序前数组System.out.print("排序前:");for(intnum:a)System.out.print(num+" ");// 冒泡排序内联简化(无单独方法)intl=a.length;for(inti=0;i<l-1;i++){boolean s=false;for(intj=0;j<l-1-i;j++){if(a[j]>a[j+1]){intt=a[j];a[j]=a[j+1];a[j+1]=t;s=true;}}if(!s)break;}// 直接打印排序后数组System.out.print("\n排序后:");for(intnum:a)System.out.print(num+" ");}}二、案例Algorithm02
要求:输出100到300间所有能被7整除且不能被3整除的整数,每行输出5个。
代码如下:
public class Algorithm02{publicstaticvoidmain(String[]args){// 用于计数,控制每行输出5个数字intcount=0;// 遍历100到300之间的所有整数for(inti=100;i<=300;i++){// 判断条件:能被7整除 且 不能被3整除if(i%7==0&&i%3!=0){// 输出数字,不换行System.out.print(i+"\t");count++;// 每输出5个数字,换行if(count%5==0){System.out.println();}}}}}三、案例Algorithm03
要求:计算3到11之间(包括3和11)所有整数的阶乘和。
代码如下(示例):
public class Algorithm03{publicstaticvoidmain(String[]args){longsum=0;longfactorial=1;// 初始为1!for(intnum=3;num<=11;num++){// 复用前一个数的阶乘:num! = (num-1)! × numfactorial*=num;sum+=factorial;System.out.println(num+"! = "+factorial);}System.out.println("3到11之间所有整数的阶乘和 = "+sum);}}四、案例Algorithm04
要求:从键盘输入一个整数n,使用while设计程序计算从1到n的和。
代码如下:
import java.util.Scanner;public class Algorithm04{publicstaticvoidmain(String[]args){// 创建Scanner对象,用于接收键盘输入Scanner scanner=newScanner(System.in);// 提示用户输入整数nSystem.out.print("请输入一个整数n:");intn=scanner.nextInt();// 定义变量:sum存储累加和,初始为0;i作为循环计数器,初始为1intsum=0;inti=1;// while循环:当i <= n时,执行累加while(i<=n){sum+=i;// 等价于 sum = sum + ii++;// 计数器自增,避免死循环}// 输出结果System.out.println("1到"+n+"的和为:"+sum);// 关闭Scanner,释放资源scanner.close();}}五、案例Algorithm05
要求:从键盘输入一个4位整数n,计算各位数字的和。例如:n=3214,其各位数字和为3+2+1+4=10
代码如下:
import java.util.Scanner;public class Algorithm05{publicstaticvoidmain(String[]args){Scanner scanner=newScanner(System.in);System.out.print("请输入一个整数:");intn=scanner.nextInt();// 处理负数(取绝对值,不影响数字和)intnum=Math.abs(n);intsum=0;// 循环拆分每一位while(num>0){sum+=num%10;// 累加个位num=num/10;// 舍去个位,继续处理剩余位}System.out.println(n+"的各位数字和为:"+sum);scanner.close();}}