您的位置:首页 > 其它

Sum of first K even-length Palindrome numbers

2017-12-21 14:40 225 查看

lintcode 744

已知

Given a integer k, find the sum of first k even-length palindrome numbers.
Even length here refers to the number of digits of a number is even.


示例

Given k = 3, return 66 // 11 + 22 + 33 = 66 (Sum of first three even-length palindrome numbers)

Given k = 10, return 1496
// 11 + 22 + 33 + 44 + 55 + 66 + 77 + 88 + 99 + 1001 = 1496


思路:

这道题思路本身并不复杂,因为求得是偶数位数的回文数,我们可以令每个符合要求的回文数分成左右两段,而回文数的大小则是由左半计算的,也就是说(1,2,3,4,5,6,7,8,9,10,11,12 … xy)对应(11,22,33,44,55,66,77,88,99,1001,1111,1221 … xyyx), 左半边越大,回文数越大,这个结论是正确也很容易证明的。也就是说,题意就是 1 - k 作为左半部分的回文数的和为多少

代码:

public class Solution {
public int sumKEven(int k) {
int ret = 0;
for (int i = 1; i <= k; i++) {
ret += calculate(i);
}
return ret;
}

private int calculate(int num) {
String left = String.valueOf(num);
//如 123 -> 321 这里使用StringBuilder自带的reverse方法
String right = new StringBuilder().append(left).reverse().toString();
return Integer.valueOf(left + right);
}
}


谢谢您的阅读,希望对您有所帮助(〃’▽’〃)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  回文数