22问答网
所有问题
c语言中3!+6!+9!+12!+15!+18!+21!如何编程
如题所述
举报该问题
推荐答案 推荐于2018-05-09
double确实不够,20!的话还凑活,21!刚好超, long long int也一样,用long double吧
#include <stdio.h>
int main()
{
int i;
long double sum,t;
for(i=1,t=1,sum=0;i<=21;i++)
{
t*=i;
if(i%3==0)sum+=t;
}
printf("sum=%.0Lf",sum);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://22.wendadaohang.com/zd/fShf622hX.html
其他回答
第1个回答 2011-06-16
这个1楼的方法是不行的,这个题目逻辑不是很难,重点是21!是一个很大的数,long,int应该都不够的,double也会有误差。。。
要准确的算该去找找c语言中对这种很大的数该怎么处理,这才是解决问题的关键。
现在一直做Java,c不是很清楚了
可以参考下这个网页
http://wenwen.soso.com/z/q202524567.htm
第2个回答 2011-06-16
double怎么会超
还有 什么long double
double 最长了 是10的307次方 将近100位 不会超的
用double就可以
第3个回答 2011-06-16
int i,t=1,sum=0;
for(i=3;i<=21;i+=3)
{
t*=i*(i-1)*(i-2);
sum+=t;
}
printf("%d\n",sum);
}
第4个回答 2011-06-16
#include <stdio.h>
int main()
{
int i;
long long sum = 0, t = 1;
for(i=3; i<=21; i+=3)
{
t*= i * (i - 1) * (i - 2);
sum+=t;
}
printf("sum=%lld \n",sum);
return 0;
}
1
2
下一页
相似回答
用
C语言
编写函数求
3!6!9!12!15!18!21!
答:
if( n == 1)return 1;else return n*(fact(n-1));} int main(){ int i;double result = 0.0;for(i=3;i<22;i+=3){result = fact(n);printf("%lf\n", result);return 0;} 编写函数求
3!+6!+9!+12!+15!+18!+21
。(
c语言
)static int Getreslut(n){ int sum=0;for...
编写函数求
3!+6!+9!+12!+15!+18!+21!
。(
c语言
)
答:
这道题是求从3-21,差为3的8个数阶乘的和,编写一个求阶乘之和的函数sum(),使用for循环进行阶乘的计算,最终和太大,因此使用科学计数方式表示输出。程序代码:include<stdio.h> float sum(int n){int i,j;float t,s=0;for(i=3;i<=n;i=i+3){t=1;for(j=1;j<=i;j++)t=t*j...
大家正在搜
c语言中!
c语言中0和1代表什么
c语言中!什么意思
c语言中%s和%c
c语言中char
c语言中?:怎么用
c语言中或怎么表示
c语言中的%d
c语言中%s
相关问题
用C语言编写函数求3!6!9!12!15!18!21!
用C语言编写,功能:编写函数求3!+6!+9!+12!+16...
计算s=3!+6!+9!+12!+15!+18!c 语言计算
C语言编程3+6+9。。。。。+99
用c语言编程, 求3+6+9+……45的值,并将结果输出
在C语言中计算s=3!+6!+9!+...18!,请问我的程...
3+6+9+12+15+18+...60的总和,要求最简便的...
c语言 3、5、6、7、8、21、31、12、15、23 十...