发布时间: 2017年1月17日 00:25 时间限制: 1000ms 内存限制: 128M
输入一个正整数n,输出n!的值。 其中n!=1*2*3*…*n。
输入包含一个正整数n,n<=1000。
输出n!的准确值。
10
3628800
代码:
#include <cstdio> #define SIZE 6666 int main() { int val; scanf("%d", &val); int ar[SIZE] = { 1 }; for (int i = 2; i <= val; i++) { int carry = 0; for (int j = 0; j < SIZE; j++) { int cur_num = ar[j] * i + carry; ar[j] = cur_num % 10; carry = cur_num / 10; } } int index; for (int i = SIZE - 1; i >= 0; i--) { if (ar[i]) { index = i; break; } } for (int i = index; i >= 0; i--) { printf("%d", ar[i]); } putchar(‘\n‘); return 0; }
原文:http://www.cnblogs.com/ray-coding-in-rays/p/6308582.html