十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
按照你的要求编写的n的阶乘的Java程序如下
公司主营业务:网站制作、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出丰都免费做网站回馈大家。
public class Factorial{
public int foo(int x){
if(x==0 || x==1){
return 1;
}else{
return x*foo(x-1);
}
}
public static void main(String[] args){
int n=6;
Factorial f=new Factorial();
System.out.println(f.foo(n));
}
}
int n=8;
int p=n;
for(int i=n;i1;i--){
p*=i;
}
print("%d\n",p);
1、首先要理解一下阶乘的公式:
n! =n*(n-1)*(n-2)*....*2*1, 5! = 5*4*3*2*1
#include //头文件stdio.h在新浪博客中无法显示加上就可以了
int main()
{
int t=5,i=4; //要是求其他的数的阶乘的话,把t的值改为其他数,
//再把i改为(t-1)就行了
while(i=1)
{
t=t*i;
i--;
}
printf("5的阶乘结果是:%d\n",t);
return 0;
}
2、运行结果如下:
3、上面这种方法虽然能求出结果,但是不能求任意的数,也没有考虑到0!=1,这种情况,我们来改进一下;
#include // //头文件stdio.h在新浪博客中无法显示加上就可以了
int main()
{
int n,jc;
int jiecheng(int j);
printf("请输入任意一个整数\n");
scanf("%d",n);
jc=jiecheng(n);
printf("该数的阶乘结果是:%d\n",jc);
return 0;
}
int jiecheng(int j)
{
int i=j-1;
if(j==0 | j==1) // 因为0的阶乘是1 ,1的阶乘也是1
j=1;
while(i1) //
{
j=j*i;
i--;
}
return(j);
}
4、运行结果如下:
public class Myjiecheng {
public static void main(String[] args) {
String s=JOptionPane.showInputDialog("请输入你要求几的阶乘:");
if(s!=null s.length()0){
try{
int n=Integer.parseInt(s);
int sum=1;
for(int i=1;i=n;i++){
sum=sum*i;
}
JOptionPane.showMessageDialog(null, n+"的阶乘是"+sum);
}catch(Exception e){
JOptionPane.showMessageDialog(null, "输入的不是数字");
}
}
}
楼主,系统提示你少括号,让你插入一个括号在结束块,说的很明白啊
你在最后加个括号就没错啦...
public class example2 {
static long calcFactorial(int n){
long factorial=1;
if(n1||n20){
System.out.println("输入错误!");
}
for(int i=n;i=1;i--){
factorial*=i;
}
System.out.println("请输入不超过20的正整数n:");
for(int i=1;i=n;i++){
System.out.printf("最后结果:%d",calcFactorial(n));
System.out.println();
return factorial;
}
public static void main(String[] args){}
} //-这个是 calcFactorial方法的结束括号,你类example2的结束括号呢?
另外你这个方法能否运行起来?主函数应该写在class内,而不是calcFactorial方法内