解题思路:
注意事项:
参考代码:
#include "stdio.h"
#include "string.h"
int PANDUAN(char s[100])
{
int h = strlen(s);
for (int i = 0; s[i] != '\0'; i++)
{
if (s[i] == s[h - 1])
{
h--;
continue;
}
if (s[i] != s[h - 1])
{
break;
}
}
if (h == 0)return 1;
if (h != 0)return 0;
}
void add(char s[100],int n)
{
int h = strlen(s);
int H = h;
char ss[100];
strcpy(ss, s);
for (int i = 0; i < H; i++)
{
s[i] = (s[i]-'0' + ss[h - 1]-'0')+'0';
h--;
if (s[H - 1] - '0' >= n) { s[H] = '0'; s[H + 1] = '\0'; }
if (s[H - 1] -'0'< n) { s[H] = '\0'; }
if (s[i]-'0'>= n)
{
s[i] = (s[i]-'0' - n)+'0';
s[i + 1] =(s[i+1]-'0'+1)+'0';
}
}
}
int main()
{
int n;
char s[100];
scanf("%d", &n);
getchar();
gets(s);
int k = 0;;
while (1)
{
add(s, n); k++;
if (PANDUAN(s) == 1) { printf("STEP=%d", k); break; }
if (k > 30) { printf("Impossible!"); break; }
}
}
0.0分
6 人评分