1. int类型的范围是大概 正负20亿左右,就是说如果一个int 类型的最大值+1=int 类型的最小值,
从正20多亿瞬间变成负20多亿,你这个负数就是因为这个
2. 你这解法明显不对。第1月,one=0,two=1,three=0对兔子:第一个月明显应该one=1,two=0
而且我完全没看懂你的思路
这个是Fibonacci数列:1,1,2,3,5,8,13,21。。。。。一般是用迭代来做的
迭代类问题的一般思路:你要是想算出one,two,three的话,先把1234567...月的数据列出来找规律
one:1 0 1 1 2 3 5
two:0 1 0 1 1 2 3
thre : 0 0 1 1 2 3 5
可以看出除了开头,后面的数据one,two,three 本身仍是fibonacci数列
其实要简单点的话,
one=第n月总数-第n-1月总数(这个月增加的)
two=第n-1月总数-第n-2月总数(上个月增加的)
three=第n月总数-one-two(剩下的)
代码的不写了,这种题真是想起来就头疼
|