int fact(int n)
{
int arr[3096] = { 1 }; // 记录答案数字
int size = 1; // 记录答案位数
int carry = 0; // 表示进位数字
for (int i = 1; i <= n; i++)
{
for (int j = 0; j < size; j++)
{
int temp = arr[j] * i + carry; // 用乘数 i,算出本位乘积 假设为 24 x 5 = 120
arr[j] = temp % 10; // 则本位写 0,储存在 arr[0] 中
carry = temp / 10; // 进位写 12,储存在变量 carry 中
}
while (carry)
{
arr[size++] = carry % 10; // 本位写 2,储存在 arr[1] 中
carry /= 10; // 进位写 1
}
}
for (int i = size - 1; i >= 0; i--) // arr[] 中储存的数字从前到后分别为个、十、百...数组逆序输出
printf("%d", arr[i]);
}
n!(n<=1000)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。
推荐阅读更多精彩内容
- 「RIA学习力授权导师」便签输出第3期《故事思维》第7天,今天的拆页来自第四章,如何讲好一个故事 【R:阅读原文】...
- 今天的内容来自第一章《每个人都应该学会讲的6个故事》,在这一章,讲述了下面6种类型的故事。 1.“我是谁”的故事2...
- 【R:阅读原文】拆页十四今日内容来自第七章 影响不情愿、不关心和不积极人群 P171吹毛求疵的人你可能会发现你...