出大问题
查看原帖
出大问题
218974
wsadjkl0楼主2021/5/4 09:07

数组开了一千万才装下了1000的阶乘QWQ怎么回事啊

#include <iostream>
#include<cstring>
#include<algorithm>

using namespace std;

char a1[3000];
int a[10000000];
void doit(){
	memset(a1, 0, sizeof(a1)); 
    for(int i = 0; i < 10000000; i++) a[i] = 0;

    a[0] = 1;
	int n, m, len = 1;
	cin >> n >> m;
	for(int i = 1; i <= n; i++){
		for(int j = 0; j < len; j++) 
			a[j] *= i;
		for(int j = 0; j < len; j++) {
			a[j+1] += a[j]/10;
			a[j] %= 10;
			if(a[j+1] != 0) len++;;
		}
	}
	while(a[len] == 0 && len > 0) len--;
	for(int i = len; i >= 0; i--) cout << a[i];
	cout << endl << len;
}
int main() {
	// your code goes here
	doit();
	return 0;
}
2021/5/4 09:07
加载中...