一、Problem
輸入
輸入一行包含一個整數 n。
輸出
輸出一行,包含一個整數,表示滿足條件的數的和。
輸入
1200
輸出
2616
二、Solution
方法一:枚舉 + 剪枝
- 數字長度必須爲偶數。
- 其它…
import java.util.*;
import java.math.*;
import java.io.*;
public class Main{
static class Solution {
void init() {
Scanner sc = new Scanner(new BufferedInputStream(System.in));
int n = sc.nextInt();
if (n < 11) {
System.out.println(0);
return;
}
long sum = 0;
for (int i = 11; i <= n; i++) {
String s = i + "";
if (s.length() % 2 != 0)
continue;
int h = s.length() >>> 1;
String sub1 = s.substring(0, h);
String sub2 = s.substring(h, s.length());
if (sub1.equals(sub2))
sum += i;
}
System.out.println(sum);
}
}
public static void main(String[] args) throws IOException {
Solution s = new Solution();
s.init();
}
}
複雜度分析
- 時間複雜度:,
- 空間複雜度:,
方法二:規律
- 從兩端向中間逼近…
- 如果 i 是 n 位數.則判斷 是否等於 ,等於則滿足條件。
...
複雜度分析
- 時間複雜度:,
- 空間複雜度:,