以下代码是 40 分:
#include<cstdio>
#include<cmath>
using namespace std;
int main() {
int n;
scanf("%d",&n);
int m=0;
char ch=getchar();
ch=getchar();
while(ch>='0'&&ch<='9') {
m=(m*10+ch-'0')%n;
ch=getchar();
}
if(m==0)
printf("%d\n",n);
else
printf("%d\n",m);
return 0;
}
在 IDE 测 #3 结果是对的。猜测是换行符的问题,于是改成了如下的代码:
#include<cstdio>
#include<cmath>
using namespace std;
int main() {
int n;
scanf("%d",&n);
int m=0;
char ch=getchar();
ch=getchar();
ch=getchar();
while(ch>='0'&&ch<='9') {
m=(m*10+ch-'0')%n;
ch=getchar();
}
if(m==0)
printf("%d\n",n);
else
printf("%d\n",m);
return 0;
}
在 IDE #3 是错的,但交上去 AC 了!怎么回事?是不是数据有问题?