求阶乘
计算sum=(1+2)!+(1+2+3)!+(1+2+3+4)!+(1+2+3+4+5)!,,要求编写两个函数,功能如下:longlong fun1(int n)用来实现求n的阶乘;longlong myfun2(int n)用来实现求(1+2+3+...+n)的阶乘; 然后在主函数中调用fun2函数实现计算sum 的值并输出。 #include <stdio.h>long long fun1(int n)
{
int i ;
long long r ;
for(r = 1 , i = 2 ; i < n + 1 ; i ++) r *= i ;
return r ;
}
long long fun2(int n)
{
int d , i ;
long long r ;
for(r = 0 , d = 1 , i = 2 ; i < n + 1 ; i ++) {
r = r + fun1(d + i) ;
d += i ;
}
return r ;
}
int main(void)
{
int n ;
scanf("%d" , & n) ;
printf("%I64d\n" , fun2(n)) ;
} jackz007 发表于 2020-12-19 18:35
谢谢! jackz007 发表于 2020-12-19 18:35
为什么输入8,输出的是一个很大的负数呢? jinzhi 发表于 2020-12-20 01:07
为什么输入8,输出的是一个很大的负数呢?
第26句
printf("%I64d\n" , fun2(n)) ;
改为
printf("%I64u\n" , fun2(n)) ;
页:
[1]