中易网

用C语言编写,功能:编写函数求3!+6!+9!+12!+16!+18!+......+n!.

答案:3  悬赏:50  
解决时间 2021-01-12 12:05
  • 提问者网友:我是女神我骄傲
  • 2021-01-12 06:15
用C语言编写,功能:编写函数求3!+6!+9!+12!+16!+18!+......+n!.
最佳答案
  • 二级知识专家网友:怙棘
  • 2021-01-12 06:41
n是指输入的个数,还是指最后那个数
追问:输入的那个数!大神帮忙啊!
追答:==搞错了,你题目没搞错吧,那个怎么是16!
追问:15我错了
追答:我就说嘛?膜拜我吧,要注意数字太大,会装不下的问题!
#include
int fun(int n)
{
int sum;
if(n == 1)
sum = 1;
else
sum = n*fun(n-1);
return sum;
}

void main( )
{

int a;
scanf("%d",&a);
if(a%3 != 0)
{
printf("输入的数得是三的倍数!\n");
}
else
{
int result = 0;
for(int i = 3;i<=a;i+=3)
{
result += fun(i);
}
printf("结果是=%d",result);
}

}
全部回答
  • 1楼网友:污到你湿
  • 2021-01-12 08:19
#include <stdio.h>
int main() {
unsigned i,j,n,fact = 6,sum = 0;
printf("n = ");
scanf("%u",&n);
if(n > 12) n = 12; // 超过13就装不下了
if(n <= 3) { n = 3; sum = 6; }
n = n + ((n % 3) ? (3 - n % 3) : 0);
for(i = 3; i < n; i += 3) {
for(j = 0; j < 3; ++j)
fact *= i + j + 1;
sum += fact;
}
printf("3! + 6! + ...... + %u! = %u ",n,sum);
return 0;
}
  • 2楼网友:鱼忧
  • 2021-01-12 06:59
#include<stdio.h>
int main(void)
{
int i,n,j=1;
int sum=0;
scanf("%d",&n);
for(i=1;i<n;i++)
{
j=j*i;
if(i%3==0)
sum=sum+j;
if(sum>32767)
break;
}
printf("%5d\n",j);
printf("%5d\n",sum);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息