问一下原因,个人感觉最后两个for有问题,不过看不出来

#include <iostream>
using namespace std;
#include<string>
#include<cstring>
int a[100],b[100],c[101],len;

bool huiwen(){
for (int i=0;i*2<=len;i++)
if(a[i]!=a[len-1-i])return 0;
return 1;
}

int main(){
int n,ans;
string m;
cin>>n>>m;
len=m.size();
for(int i=0;i<len;i++)
a[i]=m[i]-'0';
memset(c,0,sizeof(c));
while(1)
{

if(huiwen())break;
for(int i=0;i<len;i++)
b[i]=a[len-1-i];

for(int i=0;i<len;i++)
c[i]=a[i]+b[i];

for(int i=0;i<len;i++)
if(c[i]>n)
{c[i]=c[i]-n;
c[i+1]++;
}
//if(c[0]=1)
// len+=len;
// for(int i=0;i<len;i++)
// a[i]=c[i];
ans++;
if(ans>30){
cout<<" impossible";
break;
}
}
if(ans<=30)
cout << "STEP="<<ans;
return 0;
}

0 条评论

目前还没有评论...

信息

ID
1304
难度
5
分类
模拟 点击显示
标签
递交数
8066
已通过
2523
通过率
31%
被复制
28
上传者