1024. Palindromic Number (25)

#include <iostream>
#include <string.h>

using namespace std;

int judge(char s[])
{
	int len = strlen(s), i, r = len / 2 - 1;
	for(i = 0; i <= r; i++)
	{
		if(s[i] != s[len - i - 1])
		{
			return 0;
		}
	}

	return 1;
}

int main()
{
	char a[100];
	int k;
	scanf("%s%d", a, &k);

	if(judge(a) == 1)
	{
		printf("%s\n0\n", a);
		return 0;
	}

	int i, cur, jinwei, j, len;
	char b[100];

	for(i = 1; i <= k; i++)
	{
		len = strlen(a);
		for(j = 0; j <= len - 1; j++)
		{
			b[j] = a[len - j - 1];
		}
		
		jinwei = 0;
		for(j = 0; j <= len - 1; j++)
		{
			cur = a[j] - '0' + b[j] - '0' + jinwei;
			a[j] = cur % 10 + '0';
			jinwei = cur / 10;
		}

		if(jinwei > 0)
		{
			a[j++] = jinwei + '0';
		}
		a[j] = '\0';

		if(judge(a) == 1)
		{
			break;
		}
	}

	if(i > k)
	{
		i = k;
	}

	for(k = j - 1; k >= 0; k--)
	{
		printf("%c", a[k]);
	}

	printf("\n%d\n", i);

	system("pause");
	return 0;
}

 

posted on 2025-11-23 16:59  王景迁  阅读(3)  评论(0)    收藏  举报

导航