社区讨论
大佬,求助,c语言,不知道为什么输出结果只会是13
P1009[NOIP 1998 普及组] 阶乘之和参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @loxnqndn
- 此快照首次捕获于
- 2023/11/14 09:31 2 年前
- 此快照最后确认于
- 2023/11/14 14:03 2 年前
int s[100],p[100];
void inti(){
for(int i=0;i<100;i++){
s[i]=0;
p[i]=0;
}
p[0]=1;
}
void show(){
int i=99;
for( ;i>=0;i--){
if(s[i]>0) break;
}
for(int j=i ;j>=0;j--){
printf("%d",s[j]);
}
}
void add (){
int carry = 0;
for(int i=0;i<100;i++){
carry += p[i]+s[i];
s[i]=carry%10;
carry=carry/10;
}
}
void mul(int i){
for (int j=0;j<100;j++){
int carry = 0;
carry += p[j]*i;
p[j]=carry%10;
carry=carry/10;
}
}
int main(){
inti();
int n ;
scanf("%d",&n);
for(int k = 1;k<=n; k++){
mul(k);
add();
}
show();
return 0;
} ```
输入3————9
输入4————13
输入5————13
不知道为什么
回复
共 0 条回复,欢迎继续交流。
正在加载回复...