回文距离

                    回文距离

  • 编程语言要求: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;
}







坚持原创技术分享,您的支持将鼓励我继续创作!
  • 本文作者: Fayne
  • 本文链接: 397.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!