【1172】求10000以内n的阶乘

【题目描述】
       求10000以内n的阶乘。。
【输入】
       只有一行输入,整数n(0≤n≤10000)。
【输出】
       一行,即n!的值。
【输入样例】
       4
【输出样例】
       24
【参考程序】

#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;

int main() {
	int n, len, x, a[40001];
	cin >> n;
	a[1] = 1;								// 初始化为1
	len = 1;								// 数组a的实际位数 
	
	for (int i=1; i<=n; i++) {
		x = 0;								// x存储进位 
		for (int j=1; j<=len; j++) {
			a[j] = a[j] * i + x;
			x = a[j] / 10;					// x处理上一位的进位
			a[j] %= 10;						// 只保留个位
			if (x>0 && j>=len) {
				len++;						// 判断进位后整数长度是否增加 
			} 
		}
	} 
	
	for (int i=len; i>=1; i--) {
		cout << a[i];
	}
		
	return 0;
}

发布了49 篇原创文章 · 获赞 0 · 访问量 1035

猜你喜欢

转载自blog.csdn.net/developer_zhb/article/details/105021881
今日推荐