回文距离
回文距离
- 编程语言要求: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; }