1、C+经典问题:狐狸找兔子问题描述:围绕着山顶有 10 个洞,一只狐狸和一只兔子住在各自的洞里。狐狸想吃掉兔子。一天,兔子对狐狸说:“你想吃我有一个条件,先把洞从 110 编上号,你从 10 号洞出发,先到 1 号洞找我;第二次隔 1 个洞找我,第三次隔 2 个洞找我,以后依次类推,次数不限,若能找到我,你就可以饱餐一顿。不过在没有找到我以前不能停下来。”狐狸满口答应,就开始找了。它从早到晚进了 1000 次洞,累得昏了过去,也没找到兔子,请问,兔子躲在几号洞里?分析:我们设定一个数组 a11,用来表示这 10 个山洞(a0 不使用),并且初始化为 0(数组元素值为 0 表示该洞穴狐狸没有进入过
2、),然后用多次循环模拟狐狸找兔子的过程,狐狸找兔子的循环肯定是有一个有限循环,我们不妨设置为 1000,因为狐狸找了 1000 次还找不到兔子的话,早就累死了=.=然后,这 10 个山洞是围成了一个圈的,所以是在循环访问数组中的内容,用除 n 取余来限制。程序代码:cpp view plaincopyprint?1.#include 2.using namespace std; 3.int main() 4.int a11=0; 5.int i=0,k=0; 6.int n=10; 7.for(i=1;i 2.using namespace std; 3.int main() 4.int a100=0; 5.int i=0,k=0; 6.int n=10; 7.coutn; 9.for(i=1;i=1000;i+) /设定循环的次数,也就是狐狸找兔子的次数 10. k=(k+i)%n; /因为洞穴围成了一个圈 11. if(k=0)k=n; /当 k 为 0 的时候,说明可以整除 12. ak=1; /将数组值设置为 1,表示这个洞狐狸已经进入过了 13. 14. for(i=1;i=n;i+) 15. if(ai!=1) 16. cout“n 洞穴“i“安全“endl; 17. 18. 19. coutendl; 20. return 0; 21. 程序运行界面: