C 语言 狐狸找兔子问题

围绕着山顶有10个洞,一只狐狸和一只兔子住在各自的洞里。狐狸想吃掉兔子。一天,兔子对狐狸说:“你想吃我有一个条件,先把洞从1-10编上号,你从10号洞出发,先到1号洞找我;第二次隔1个洞找我,第三次隔2个洞找我,以后依次类推,次数不限,若能找到我,你就可以饱餐一顿。不过在没有找到我以前不能停下来。”狐狸满口答应,就开始找了。它从早到晚进了1000次洞,累得昏了过去,也没找到兔子,请问,兔子躲在几号洞里?

http://tieba.baidu.com/p/283788180

参考下这里的例子程序。

#include
#include

class MountainHole
{
public:
MountainHole(int _id, int _count)
{
id = _id;
count = _count;
}
~MountainHole(){}
int id;
int count;
};

int main(int argc, const char * argv[]) {

std::vector<MountainHole*> lstHole;

for (int i = 0; i < 10; i++) {
    MountainHole* m = new MountainHole(i+1, 0);
    lstHole.push_back(m);
}

int current = 0;

for (int j = 0 ; j < 1000; j++ )
{
    current = current%10;
    lstHole[current]->count ++;

    printf("第%d次, 访问了第%d个洞\n", j+1, current+1);
    current += (j+1);
}

for (int n = 0; n < 10; n ++) {
    printf("第%d个洞被访问过的次数:[%d]\n", lstHole[n]->id, lstHole[n]->count);
}

return 0;

}