一、用for循环计算n!
package for_package;
import java.util.*;//导入含有输入类的包
public class for_class {
/**
* @param args
*/
public static void main(String[] args) {//void代表不会有返回值,参数也可以不用写
// TODO Auto-generated method stub
int i;
int fact=1;
int n;
Scanner in=new Scanner(System.in);//使用Scanner类定义对象
System.out.println("请输入n:");
n=in.nextInt();
for(i=1;i<=n;i++)
{
fact=fact*i;
}
for(i=1;i<=n;i++)
if(i<n)//用来控制最后一个数后面不加*
System.out.print(i+"*");//记得加+
else
System.out.print(i);
System.out.print("="+fact);
}
}
二、用while循环计算n!
package while_package;
import java.util.*;//导入含有输入类的包
public class while_class {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=1;
int fact=1;
int n;
Scanner in=new Scanner(System.in);//使用Scanner类定义对象
System.out.println("请输入n:");
n=in.nextInt();
while(i<=n)
{
fact=fact*i;
i=i+1;
}
for(i=1;i<=n;i++)
if(i<n)//用来控制最后一个数后面不加*
System.out.print(i+"*");//记得加+
else
System.out.print(i);
System.out.print("="+fact);
}
}
三、用do-while循环计算n!
package do_while_package;
import java.util.*;//导入含有输入类的包
public class do_while_class {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=1;
int fact=1;
int n;
Scanner in=new Scanner(System.in);//使用Scanner类定义对象
System.out.println("请输入n:");
n=in.nextInt();
do
{
fact=fact*i;
i=i+1;
}while(i<=n);//do-while语句后面有分号
for(i=1;i<=n;i++)
if(i<n)//用来控制最后一个数后面不加*
System.out.print(i+"*");//记得加+
else
System.out.print(i);
System.out.print("="+fact);
}
}
四、用递归方法计算n!
package digui_package;
import java.util.*;//导入含有输入类的包
public class digui_class {
public static void main(String[] args) {
int i;
int fact=1;
int n;
Scanner in=new Scanner(System.in);//使用Scanner类定义对象
System.out.println("请输入n:");
n=in.nextInt();
fact=digui(n); //不能对类型 digui_class 中的非静态方法 digui(int)进行静态引用,即
for(i=1;i<=n;i++)
if(i<n)//用来控制最后一个数后面不加*
System.out.print(i+"*");//记得加+
else
System.out.print(i);
System.out.print("="+fact);
}
public static int digui(int n)
{
if(n==0||n==1)
return 1;
return n*digui(n-1);
}
}
五、心得总结与疑惑
1、Java中想要从键盘上输入一个数时,要导入含有输入类的包,即import java.util.*;,在主函数中,使用Scanner类定义对象,即Scanner in=new Scanner(System.in);n=in.nextInt();即可。
2、public static void main(String[] args) void代表不会有返回值,参数也可以不用写。
3、do-while语句后面有分号。
4、格式控制输出算式时,用if语句来控制最后一个数后面不加*。
5、递归调用时,要有一个边界条件,即至少有一条初始定义是非递归的,另外还要有一个递推通式。