C语言解决大数的阶层问题
2016-02-05 21:25
281 查看
著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:张刚 链接:http://www.zhihu.com/question/23490167/answer/24743241 来源:知乎 #include<stdio.h> const int max=3000; int f[max]={0};//初始化数组,也可以用memset(f,0,sizeof(f));来实现,需要用到#include<string.h> int main() { int i,j,k,n; scanf(“%d”,&n);//输入阶乘的n f[0]=1; for(i=2;i<=n;i++) { int c=0; for(j=0;j<max;j++)//模拟手工计算,将个十百千位 分别存储在f[0],f[1],f[2],f[3]; { int s=f[j]*i+c; f[j]=s%10; c=s/10;//保留进位 } } for(j=max-1;j>=0;j–) if(f[j])//倒推,找到不为0的最高位 break; for(i=j;i>=0;i–)//依次输出 printf(“%d”,f[i]); printf(“\n”); return 0; } 编辑于 2014-04-21 3 条评论
相关文章推荐
- C语言 gets()和scanf()函数的区别
- c/c++使用VS2013连接MySQL与ubuntu下c链接mysql
- 重定向操作(C语言)
- Codeblosks用C++编写通用DLL供其他语言调用
- C语言之memcpy函数
- C语言:链表实现的一个实例
- C语言:链表实现的一个实例
- 我的蓝桥杯历届初赛试题总结
- 错误记录--“==”与“=”错误
- C++运算符重载
- 在 Visual Studio 2012 中完成配置华为软件入职前练习的CppUnit测试
- neuq oj 1010 阶乘数列 C语言
- C语言scanf容易引发的bug
- codeforces 614 C Peter and Snow Blower
- 第二届蓝桥杯C/C++组第九题 购物(递归)
- 学习日记之模板方法模式和 Effective C++
- Codeforces Round #278 (Div. 2) B. Candy Boxes (模拟,数学)
- c++ 中this底层
- C++基本概念——关于头文件的那些事
- C语言如何取一个数的负数