C++语言中如何求n的阶乘??? 要求越简单越好!不要有getch不懂内个
3个回答
展开全部
只能用循环。
简单写个程序,很久没写了。不知道格式对不对,呵呵。
#include <iostream>
using namespace std;
int n(int x);
int main()
{
int a;
a=n(10);
cont a;
return 0;
}
int n(int x)
{
int i,j;
j=1;
for (i=1;i<=x;i++)
j=j*i;
return j;
}
这算法就是简单的
n!=1*2*3*.....n
的算法,当然,你也可以用递归算法来编程,算法就是
n!=n*(n-1)
这样编出来的程序更精简,但不好理解。
简单写个程序,很久没写了。不知道格式对不对,呵呵。
#include <iostream>
using namespace std;
int n(int x);
int main()
{
int a;
a=n(10);
cont a;
return 0;
}
int n(int x)
{
int i,j;
j=1;
for (i=1;i<=x;i++)
j=j*i;
return j;
}
这算法就是简单的
n!=1*2*3*.....n
的算法,当然,你也可以用递归算法来编程,算法就是
n!=n*(n-1)
这样编出来的程序更精简,但不好理解。
展开全部
2楼的很简洁啊。
只是不懂,倒数第三行return 0;有什么用,主函数没有返回的。
是不是少了个ELSE,个人感觉。
只是不懂,倒数第三行return 0;有什么用,主函数没有返回的。
是不是少了个ELSE,个人感觉。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int f(int n)
{
if(n==0) return 1;
if(n==1) return 1;
return n*f(n-1);
}
void main()
{
int n;
printf("please input n: ");
scanf("%d", &n);
if(n<0)
return 0;
printf("%d", f(n));
}
int f(int n)
{
if(n==0) return 1;
if(n==1) return 1;
return n*f(n-1);
}
void main()
{
int n;
printf("please input n: ");
scanf("%d", &n);
if(n<0)
return 0;
printf("%d", f(n));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询