33,028
社区成员
发帖
与我相关
我的任务
分享public static ulong insectBreeding(int N)
{
ulong value = 1;
if (N >= 3)
{
ulong dead = 0, count = 0;
ulong[] counts = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
for (int y = 9; N > 0; N--)
{
dead += counts[y];//满10年的不繁殖并死亡
counts[y] = (count += counts[y >= 7 ? y - 7 : (y + 3)] - counts[y]);
value += count;
if (y == 0) y = 9;
else y--;
}
value -= dead;
}
return value;
} public static ulong insectBreeding(int N)
{
ulong value = 1;
if (N >= 3)
{
ulong dead = 0;
ulong[] count = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
for (int e, s, y = 0; N > 0; N--)
{
dead += count[y = y == 0 ? 9 : (y - 1)];//满10年的不繁殖并死亡
count[y] = 0;
for (s = y >= 7 ? y - 7 : (y + 3), e = s + 7; s < e; s++)
{
count[y] += count[s > 9 ? s - 10 : s];
}
}
value = dead + count[0] + count[1] + count[2] + count[3] + count[4] + count[5] + count[6] + count[7] + count[8] + count[9];
}
return value;
}