- 编程语言要求:Java C# C C++
- 难度等级:
- 有效期: 2014-06-06 至 2015-06-06
- 答题时长:120分钟
Njzy在对回文数的学习过程中发现了一个有趣的问题.
这个问题是求一个数的回文距离。一个数的回文距离的定义是它减去一个回文数的绝对值的最小值。
比如:121的回文距离就是0,因为|121-121|=0,123的回文距离是2,|123-121|=2
输入描述:
输入包含多组测试数据,每组测试数据包含一个整数a,
(0
输出描述:
对于每组测试数据输出相应的答案。
本题由本人AC,有任何问题请联系fjinhao@qq.com。谢谢
本题来源:高校俱乐部
#include <stdio.h>
long long judge(long long n)
{
long long ret = 0, t = n;
while (t > 0) // 将高低位互换
{
ret = ret * 10 + t % 10;
t = t / 10;
};
if ( n == ret)
t = 1;
else
t = 0;
return t;
}
int main()
{
long long n;
long long c,q;
while ( 1 == scanf("%lld",&n) )
{
c = q = n;
if (judge(n))
printf("0\n");
else
{
while(!judge(c))
{
c++;
}
while(!judge(q))
{
q--;
}
if(n-q >= c-n)
printf("%d\n",c-n);
else if ( n-q < c-n)
printf("%d\n",n-q);
}
}
return 0;
}