标题:求N!遇到的问题
只看楼主
Redeyes
Rank: 4
来 自:中国
等 级:业余侠客
威 望:1
帖 子:301
专家分:292
注 册:2015-5-13
结帖率:86%
已结贴  问题点数:20 回复次数:7 
求N!遇到的问题
用程序编写求N的阶乘,可是当N的取值过大时,就输出不了了。我尝试将t的值换为double 或long long int 型,不过也没用。望各位点拨一二。(熬夜太晚,感觉cpu快烧了,)  
程序代码:
#include<stdio.h>
int main()
{
    int i,n;
    long int t=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        t=t*i;
    }
    printf("%ld",t);
} 
搜索更多相关主题的帖子: 程序编写 double color 
2016-03-25 03:07
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:4 
其实也没有必要追求那么大的数吗!

   唯实惟新 至诚致志
2016-03-25 08:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:4 
奧賽就是考這種千年不用的技能。

授人以渔,不授人以鱼。
2016-03-25 10:05
Redeyes
Rank: 4
来 自:中国
等 级:业余侠客
威 望:1
帖 子:301
专家分:292
注 册:2015-5-13
得分:0 
回复 2楼 qq1023569223
OJ上的输入的取值范围是0-3000,可是当我发现我输入到200的时候就不行了

做一名健壮的技术青年,如果未来无法用代码去改变世界,还可以考虑去搬砖。
2016-03-25 10:07
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:4 
以下是引用Redeyes在2016-3-25 10:07:33的发言:

OJ上的输入的取值范围是0-3000,可是当我发现我输入到200的时候就不行了


160多就已經超過内置數據類型可以表達的範圍了,這是大數據題目,不是簡單的求階乘,所考的東西都不在階乘運算上。

[此贴子已经被作者于2016-3-25 10:27编辑过]


授人以渔,不授人以鱼。
2016-03-25 10:16
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:4 
大数可以用数组存

一片落叶掉进了回忆的流年。
2016-03-25 10:26
Redeyes
Rank: 4
来 自:中国
等 级:业余侠客
威 望:1
帖 子:301
专家分:292
注 册:2015-5-13
得分:0 
回复 5楼 TonyDeng
那该怎么办呢,我很少遇到这么大的数

做一名健壮的技术青年,如果未来无法用代码去改变世界,还可以考虑去搬砖。
2016-03-26 00:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:4 
以下是引用Redeyes在2016-3-26 00:53:23的发言:

那该怎么办呢,我很少遇到这么大的数

用字符串像人一样运算

授人以渔,不授人以鱼。
2016-03-26 01:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-462900-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015277 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved