搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求n!前18项和的编码,我编的哪里错了?
标题:
求n!前18项和的编码,我编的哪里错了?
只看楼主
吴俊iiiii
等 级:
新手上路
帖 子:12
专家分:0
注 册:2015-4-5
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:11
求n!前18项和的编码,我编的哪里错了?
#include<stdio.h>
#define N 18
int main(void)
{
int i,a,sum=0,b=1;
for(i=1;i<=N;i++)
{
b=b*i;
a=b;
sum=sum+a;
}
printf("%d\n",sum);
return(0);
}
运行结果是-2034435559
搜索更多相关主题的帖子:
include
2015-04-11 22:14
lowrie
等 级:
论坛游侠
帖 子:81
专家分:138
注 册:2015-3-12
第
2
楼
得分:10
好像是超范围了,18的阶乘好像超出int的范围了,代码没错
2015-04-11 22:27
吴俊iiiii
等 级:
新手上路
帖 子:12
专家分:0
注 册:2015-4-5
第
3
楼
得分:0
回复 2楼 lowrie
那怎么做~~~
2015-04-11 22:34
lowrie
等 级:
论坛游侠
帖 子:81
专家分:138
注 册:2015-3-12
第
4
楼
得分:0
c语言我不是很熟呀,你问版主他们吧,下边是我用c++写的
#include <stdio.h>
#include <iostream>
using namespace std;
int main(){
long long i,a,b=1,sum=0;
for(i=1;i<=18;i++)
{
b=b*i;
sum=sum+b;
}
cout<<"sum= "<<sum<<endl;
system("pause");
return 0;
}
2015-04-11 22:40
lowrie
等 级:
论坛游侠
帖 子:81
专家分:138
注 册:2015-3-12
第
5
楼
得分:0
找到了,把类型换位long long型 输出语句改为printf("%lld\n",sum)
#include <iostream>
#include <stdio.h>
#define N 18
int main(void)
{
long long i,a,b=1,sum=0;
for(i=1;i<=N;i++)
{
b=b*i;
sum=sum+b;
}
printf("%lld\n",sum);
system("pause");
return(0);
}
2015-04-11 22:43
吴俊iiiii
等 级:
新手上路
帖 子:12
专家分:0
注 册:2015-4-5
第
6
楼
得分:0
回复 5楼 lowrie
编译有错误~~你用C++试试看~~
2015-04-11 22:59
zklhp
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
7
楼
得分:10
结果是6780385526348313
2015-04-11 23:08
吴俊iiiii
等 级:
新手上路
帖 子:12
专家分:0
注 册:2015-4-5
第
8
楼
得分:0
回复 7楼 zklhp
怎么做的????
2015-04-11 23:15
吴俊iiiii
等 级:
新手上路
帖 子:12
专家分:0
注 册:2015-4-5
第
9
楼
得分:0
回复 7楼 zklhp
做出来了~~~全部用double定义就行了~~
2015-04-11 23:25
吴俊iiiii
等 级:
新手上路
帖 子:12
专家分:0
注 册:2015-4-5
第
10
楼
得分:0
回复 5楼 lowrie
全部用double定义就行~
2015-04-11 23:26
12
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-443876-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.375592 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved