通过编程实现输出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; }
相关文章推荐
- 通过编程实现输出2的1000次方
- 编程实现输出2的1000次方
- 强化练习1:通过编程实现,分别统计0~n有多少个0~9 提示:n通过参数传入
- 编程实现连续输的格式输出
- 通过编程实现,统计1~n有多少个9
- 通过编程实现,统计1~n有多少个9 提示:n通过参数传入
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- 输出平均数 (通过传递程序参数实现)
- ASP.NET中无法通过编程方式实现多线程断点续传
- 利用消息机制实现.NET AOP(面向方面编程)--通过RealProxy实现
- 我的编程学习日志(15)--C/C++实现输出汉字拼音的首字母
- 编程技巧:使用LINQ如何通过多次调用GroupBy实现分组嵌套
- Android 通过WebService进行网络编程,使用工具类轻松实现
- Spring面向切面编程——Spring实现AOP方式——通过注解实现
- 通过继承泛型类实现输出学生信息
- Linux C 编程 实现彩色文字输出
- JAVA 通过 Socket 实现 TCP 编程
- 利用汇编语言编程实现通过堆栈交换ax,bx的大小
- struts2: 通过流输出实现exce导出
- UNIX环境高级编程学习之第十五章进程间通信 - 通过有名管道(命名管道)实现进程间通信