| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 615 人关注过本帖
标题:新手请教:关于数值较大的数的输出
只看楼主 加入收藏
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
结帖率:88.89%
收藏
已结贴  问题点数:10 回复次数:3 
新手请教:关于数值较大的数的输出
程序代码:
#include<stdio.h> 
main() 
{ 
    long double s1=1,s2=0; 
    int i,y; 
    scanf("%d",&y); 
    for(i=1;i<=y;i++) 
    { 
        s1*=i; 
        s2+=s1;  
    }  
    printf("%e",s2);   
  getch(); 
}
例如上面这个阶乘和的程序只能输出1!加到170!的数
1!+2!······+170!=7.300360e+306
图片附件: 游客没有浏览图片的权限,请 登录注册

之后就加不了了
请教:
如果很无聊想加到更大的数怎么办
比如从1!加到10000!那要怎么改?
很苦恼
目前我知道long double表示的值是最大的了,
e能以科学计数法表示很大的数;
但是都没法实现。

[ 本帖最后由 jiangwu10057 于 2009-10-25 09:37 编辑 ]
搜索更多相关主题的帖子: 输出 数值 
2009-10-25 09:04
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:10 
https://bbs.bccn.net/thread-286997-4-1.html
这里面有人用链表处理的,你可以去看看,至少100!他算出来了。
2009-10-25 09:08
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
程序代码:
#include <stdio.h>   
#include <stdlib.h>   

#define N 6000    //要计算的N   
#define P 10000  
long s[N]={1,1},a=1,b=0;  

void factorial(long s[],long n)  
{  
for(;a<=*s;)   
    {   
     b+=s[a]*n;   
     s[a]=b%P;   
     b/=P;   
     if((*s==a)&&b)   
       (*s)++;   
     ++a;   
    }  
b=0,a=1;  
}   

void add(long sum[],long s[])  
{  
int i; 
for(i=1;i<=s[0];++i)  
    if((sum[i]+=s[i])>9999) {sum[i]%=10000,sum[i+1]++;}  
}  

int main()  
{   
int i=2;  
long sum[N]={1,1};  
for(;i<=N;factorial(s,i),add(sum,s),++i);  
printf("%d",sum[s[0]]);  
for(i=s[0]-1;i>0;printf("%04d",sum[i]),--i);   
putchar('\n');  
system("pause");   
return 0;   
} 
这个是怎么做到的·?
谁能解释下谢谢

[ 本帖最后由 jiangwu10057 于 2009-10-25 15:20 编辑 ]
2009-10-25 09:33
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
请问如何实现输出超出-3.4e-38至3.4e38。
范围的数
我想用数组输出或者字符串。(这个想法可行?)

[ 本帖最后由 jiangwu10057 于 2009-10-25 15:21 编辑 ]
2009-10-25 11:02
快速回复:新手请教:关于数值较大的数的输出
数据加载中...
 
   



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

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