100 を表現したい場合、C/C++ の数値の範囲には上限があります! この種の大きな数値は配列で表現する必要があります。大きな数値を表す配列の原理は手書きの加算/乗算であり、キャリーの手計算をシミュレートします。
- レンプレート
vector<int> a(100,0);
void merge(){
//初始化num为结果
vector<long long int> num(100,0);
num[0]=1;
//初始化有效长度为1
int length=1;
//初始化进位
int carry=0;
//大数累乘
for(int i=0;i<a.size();i++){
for(int j=0;j<length;j++){
long long int temp=num[j]*a[i]+carry;
//本位的数字
num[j]=temp%10;
//下一位的进位
carry=temp/10;
//判断下一位是否进位
if(carry>0&&j==length-1) length++;
}
}
for(int i=length-1;i>=0;i--){
//从高位到低位输出
cout<<num[i];
}
}
int main(){
for(int i=0;i<100;i++){
a[i]=i+1;
}
merge();
}