问题
小羊能活5岁,它在2岁,4岁的时候都会生一只小羊,5岁的时候就死亡了。
问:现在有一只刚出生的小羊(0岁),n年后有多少只羊?
回答
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| int zeroSheepCount = 1, sheep1Count=0 , sheep2Count=0, sheep3Count=0, sheep4Count=0, sheep5Count=0; for (int i = 0; i < 10; i++) { sheep5Count = sheep4Count; sheep4Count = sheep3Count; sheep3Count = sheep2Count; sheep2Count = sheep1Count; sheep1Count = zeroSheepCount;
var newSheep = sheep2Count + sheep4Count; zeroSheepCount = newSheep; } var allCount = zeroSheepCount + sheep1Count + sheep2Count + sheep3Count + sheep4Count + sheep5Count; Console.WriteLine(allCount);
|
常见的处理方式都会弄出来一个羊的对象,然后记录年龄,判断年龄。这样能够解决这个问题,但是羊的数量增加的很快,50年的时候内存已经增加明显,所以这个方法就不会有内存这方面的问题。