您的位置:首页 > 编程语言

通过编程实现输出2的1000次方

2018-01-26 21:22 204 查看

解析

2的1000次方超出了长整型的最大位数,可以将该数每一位放在数组里面,从前往后位数从低到高

每次乘2是从高位开始乘,设高位为a,如果a*2 >= 10, 向该元素位置后一位进位,如果该元素已经是最高位,则位数加1;

代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
int a[1000] = {0};
int i = 0;
int j = 0;
int k = 0;
int len = 1;
int temp;
a[0] = 1;
while(i < 1000)
{
for(j = len - 1; j >= 0; j--)
{
temp = a[j];
temp *= 2;
if(temp <10)
{
a[j] = temp;
}
else
{
a[j] = temp % 10;
a[j +1] =a[j+1] + temp / 10;

if(j + 1 == len)
len++;

for(k = j + 1; k < len - 1; k++)
{
if(a[k] > 10)
{
a[k] = a[k] % 10;
a[k + 1] = a[k + 1]+a[k] / 10;

if(k+1 == len )
len++;

}
else
break;
}
}
}
i++;
}
printf("len = %d\n", len);
for(i = len - 1; i >= 0; i--)
{
printf("%d", a[i]);
}
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: