为什么运行不了啊
题目是编程输出4字节表示的整数中阶乘值最大的那个整数和它的阶乘
辣鸡学生党求指点🥺
#include <stdio.h>
#include<math.h>
int main()
{
long long i=1, n=1, s=pow(2,31)-1;
while(n<s)
{
i++;
n *= i;
}
n /= i;
i--;
printf("%lld %lld", i, n);
}
#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 3000;
int ans[MAXN];//0个位,1十位...
int main(){
int n;
cin>>n;
memset(ans,0,sizeof(ans));//数组置为0
ans[0] = 1;
//做乘法
for(int i=2; i<=n; i++){
int c = 0;//保存进位
for(int j=0; j<MAXN; j++){
int temp = ans[j]*i+c;//每个数都要与i相乘
ans[j] = temp%10;
c = temp/10;
}
}
//输出
int i;
for(i=MAXN-1; i>=0; i--) if(ans[i]) break;//过滤前面的0
for(int j=i; j>=0; j--) cout<<ans[j];
return 0;
}