func findIntegers(num int) int {
	f := make([]int, 31)
	f[0], f[1] = 1, 2
	for i := 2; i < 31; i++ {
		f[i] = f[i-2] + f[i-1]
	}
	cnt, pre := 0, 1
	for k := 30; 0 <= k; k-- { // The highest bit is the sign of int32.
		if (num>>uint(k))&1 == 1 {
			cnt += f[k]
			if pre == 1 {
				return cnt
			}
			pre = 1
		} else {
			pre = 0
		}
	}
	return cnt + 1 // Means num itself is also valid.
}