问题描述
- 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;
}
时间: 2024-09-19 07:48:58