高精度阶乘求助(大概知道是长度被卡住了但不知道怎么改好)
  • 板块学术版
  • 楼主像素旋转
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/3/16 18:16
  • 上次更新2023/11/5 01:59:35
查看原帖
高精度阶乘求助(大概知道是长度被卡住了但不知道怎么改好)
447562
像素旋转楼主2021/3/16 18:16
#include<iostream>
using namespace std;
int main(void) {
	int N;
	while (cin >> N) {
		int ans[3005]{ 0 };
		ans[0] = 1;//向右拓展
		int len = 1;//记录长度
		while (N) {
			for (int i = 0; i < len; i++) 
				ans[i] *= N;
			for(int i=0;i<len;i++)
				if (ans[i] > 9) {
					ans[i+1]+= ans[i]/10;
					ans[i] %= 10;
			}
			while(ans[len])len++;
			N--;
		}
		for (int i = 0; i < len; i++)
			cout << ans[len - i - 1];
		cout << endl;
	}
	return 0;
}

数据开到35开始出错

2021/3/16 18:16
加载中...