cyping @ 2023-01-30 18:01:42
如题,下了一组数据后在Devcpp上验证了一下是可以的
#include<stdio.h>
int isreverse(int *a,int l)
{
for(int i=0,j=l-1;i<j;i++,j--) if(a[i]!=a[j]) return 0;
return 1;
}
int main(void)
{
char ch;
int m[100],len=0,rev[100],step,add[100]={0},i,n;
scanf("%d",&n);
getchar();
for(ch=getchar();ch!=EOF&&ch!='\n';){ //扫描m
m[len]=ch-'0';
len++;
ch=getchar();
}
for(step=0;!isreverse(m,len);step++){
for(i=1;i<=len;i++){
rev[i-1]=m[len-i];
}
for(i=0;i<len;i++){
add[i+1]=(add[i]+m[i]+rev[i])/n;
add[i]=(add[i]+m[i]+rev[i])%n;
}
if(add[i])len++;
for(i=0;i<len;i++){
m[i]=add[i];
add[i]=0;
}
if(step>30)break;
}
if(step<=30) printf("STEP=%d",step);
else printf("Impossible!");
}
by WanderOvO @ 2023-01-30 18:26:13
在这里测试一下
by WA_Coding_Duck @ 2023-01-30 18:52:09
用NOI Linux或Ubuntu
by cyping @ 2023-01-30 19:12:41
@WanderOvO 确实在这里就不行了qwq请问怎么办呢?好像不能调试
by WanderOvO @ 2023-02-04 18:31:49
@cyping 可能是换行符的问题,你多用一发 getchar()
试一下