花开若相惜


私信TA

用户名:uq_78154707512

访问量:6382

签 名:

等  级
排  名 953
经  验 3305
参赛次数 0
文章发表 38
年  龄 22
在职情况 学生
学  校
专  业 通信工程

  自我简介:

刷题中!!!

解题思路:主要还是解决其中可能的溢出问题,把较大的数定义为long int 就好了。

注意事项:    注意溢出!!!!

参考代码:

#include <stdio.h>


long int func(long int n){

if(n>1){

     return n*func(n-1);

}

if(n==0||n==1){  

return 1;

}   

}

int main(){

     long int n,a[21];//我这里a【21】取的是n的阶乘,故应该用long int 

     long long sum = 0;

     scanf("%d",&n);

     

     for(int i=1;i<=n;i++){

      a[i]=func(i);

      sum+=a[i];

}

     printf("%ld",sum);

     return 0;

}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区