| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 879 人关注过本帖, 1 人收藏
标题:2^100是一个很大的数
只看楼主 加入收藏
bccn_0934
Rank: 2
等 级:论坛游民
帖 子:35
专家分:56
注 册:2011-5-9
结帖率:90.91%
收藏(1)
已结贴  问题点数:20 回复次数:11 
2^100是一个很大的数
2^100是一个很大的数,计算机无法直接计算出来,编程求该式的准确结果(从最高位到最低位第一位都要打印出来)

[ 本帖最后由 bccn_0934 于 2011-7-11 13:10 编辑 ]
搜索更多相关主题的帖子: 计算机 编程 
2011-07-11 11:56
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
我能输出它的二进制。。。

My life is brilliant
2011-07-11 14:39
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:1 
我也能 printf("10000....00000")后面是100个0

                                         
===========深入<----------------->浅出============
2011-07-11 15:12
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:8 
程序代码:
#include<stdio.h>
#include<string.h>
char str[1000]="\0";
void func(int n)
{
    int i,tmp,c;
    if(n==0) str[0]='1';
    else
    {
        func(n-1);
        i=0;c=0;
        while(str[i]!='\0')
        {
            tmp=((str[i]-'0')*2+c);
            str[i]=tmp%10+'0';
            c=tmp/10;
            i++;
        }
        if(c!=0)
        {
            str[i]=c+'0';
            str[i+1]='\0';
        }
    }
}
int main()
{
    int n,i;
    while(scanf("%d",&n)!=EOF)
    {
        memset(str,0,1000);
        func(n);i=0;
        while(str[i]!='\0')i++;i--;
        while(i>=0)
            printf("%c",str[i--]);
        printf("\n");
    }
    return 0;
}

********多贴代码,少说空话*******
2011-07-11 15:31
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

********多贴代码,少说空话*******
2011-07-11 15:31
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
收藏
得分:1 
#include <stdio.h>
#include <math.h>
int main(void)
{
    printf("%f\n",pow(2,100));
    return 0;
}
暂且用浮点数代替一下
2011-07-11 16:12
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
收藏
得分:8 
我也写了一个纯粹用数字的,容量和精度与4楼一样,n是要求的2的次方数

#include <stdio.h>
int main(void)
{
    int a[1000]={0};
    int x=0,j=0;
    int i=2;
    int n;
    scanf("%d",&n);
    a[0]=1;
    while(n>0)
    {
        for(x=0;x<1000;x++)
        {
            a[x]*=i;
            a[x]+=j;
            j=a[x]/10;
            a[x]%=10;
        }
        n--;
    }
    for(j=99;j>=0;j--)
        if(a[j]!=0)
            break;
    for(j=j;j>=0;j--)
        printf("%d",a[j]);
    printf("\n");
    return 0;
}
2011-07-11 17:29
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
收藏
得分:1 
呃,最后的for循环改成for(j=999;....)
因为一开始用的是a[100]的数组
后来改用1000容量的忘记把for改过来了
2011-07-11 17:32
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:1 
图片附件: 游客没有浏览图片的权限,请 登录注册

专心编程………
飞燕算法初级群:3996098
我的Blog
2011-07-11 18:04
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用StarWing83在2011-7-11 18:04:03的发言:

faint,好久不见了。  python的bigint还是挺犀利的。
2011-07-11 19:34
快速回复:2^100是一个很大的数
数据加载中...
 
   



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

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