import java.util.Scanner;
public class ff {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int sum=0,n=1,m=0; //进入while循环之前的变量必须初始化
long fct=1; //阶乘的成绩数据可能很大,所以声明为long型
do{
sum +=n;
n++;
}while(n<=100);
System.out.println(“sum=1+2+…+100=”+sum);
Scanner sc=new Scanner(System.in);
System.out.print(“请输入阶乘数:”);
m=sc.nextInt();
n=1; //注意此处给n重新赋值为1的重要性
do{
fct *=n;
n++;
}while(n<=m);
System.out.println(“fct=1*1*…*”+m+”=”+fct);
}
}
运行结果
算法分析
设置总和的变量用sum表示,控制循环的变量用n表示,阶乘数用m表示并初始化为1,三者均用整型数据;阶乘的成绩fct数据可能很大,所以声明为long型,并且初始量为1。由于使用n做控制循环的变量,当求和计算完成后,应该把循环变量重新赋值为1(即从1开始计算阶乘的乘积)。
知识点
do…while语句
1)定义:先执行循环体的语句序列,再检查条件,如果条件成立,则再次执行循环体的代码。
2)格式:do {
语句或语句序列
}
while(<条件表达式>);