Newguy


私信TA

用户名:772007765

访问量:81949

签 名:

已秃人士

等  级
排  名 28
经  验 14572
参赛次数 3
文章发表 92
年  龄 0
在职情况 在职
学  校
专  业

  自我简介:

TA的其他文章

中国好OJ
浏览:1738
幸运儿 (C++代码)
浏览:929
隐匿踪迹
浏览:397
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
	int n,step=0,num[3000]={0},i,b_num[3000]={0},len,r,tem,cheak;
	char m[100];

	scanf("%d%s",&n,m);
	len=strlen(m);
	for (i=0;i<len;i++)
		{
			if (isdigit(m[i]))
				num[i]=m[i]-'0';
			else
				num[i]=toupper(m[i])-55;
		}
	do{
		cheak=0;
		for (i=0;i<len/2;i++)
		{
			if (num[i]!=num[len-i-1])
			{
				cheak=1;
				break;
			}
		}
		if (cheak==0)
			break;
		for (i=0;i<len;i++)
			b_num[i]=num[len-i-1];
		for (r=0,i=0;i<=len+2;i++)
		{
			tem=(b_num[i]+num[i]+r)%n;
			r=(b_num[i]+num[i]+r)/n;
			num[i]=tem;
		}
		if (num[len])
			len++;
		step++;
	}while (step<=30);
	if (step>30)
		printf("Impossible!\n");
	else
		printf("STEP=%d\n",step);
	return 0;
}

解题思路:





注意事项:





参考代码:

 

0.0分

0 人评分

  评论区