求狐狸逮兔子的C++程序

来源:百度知道 编辑:UC知道 时间:2024/09/24 06:23:16
要的是C++哦.thanks.
围绕着山顶有10个圆形排列的洞。狐狸要吃兔子,兔子回答说:“可以,但必须找得到我,我就藏在这10个洞中。你先到1号洞找,第二次隔1个洞(即3号洞)找,以后如此类推,次数不限。”狐狸从早到晚进进出出了1000次,一直没有找到兔子。问兔子究竟藏在哪个洞里?
提示:次为一个反复查找线性表的过程。本人刚学数据结构,望指教。

#include <stdio.h>

int main()
{
int a[10]={1,1,1,1,1,1,1,1,1,1};//1表示狐狸没进过,0表示进过
int i,n; //n表示循环进出洞的次数

for(i=0,n=0;n<1000;n++)
{
i=i%10;
a[i]=0;
i=i+n+2;
}

for(i=0;i<10;i++)
{
if(a[i]==1)
{
printf("免子可能会在%d号洞里。\n",i+1);
}
}

return 0;
}

#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct list{
int data1;//洞的序号
int data2;//访问次数
struct list *next;
}list,*linklist;
void main()
{
linklist L,p,q;
int i,k;
L=(linklist)malloc(sizeof(list));
L->data1=1;
L->data2=0;
L->next=NULL;
p=L;
for(i=1;i<=9;i++)
{
q=(linklist)malloc(sizeof(list));
q->data1=i+1;
q->data2=0;
p->next=q;
p=q;
p->next=L;
}
p=L;
for(i=1;i<=100