社区讨论

大佬,求助,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 条回复,欢迎继续交流。

正在加载回复...