キツネがウサギを捕まえる(c / c ++実装)

問題の説明
山の頂上に10個の円形の穴があります。キツネはウサギを食べたがっています。ウサギは「はい、でもあなたは私を見つけなければなりません。私はこれらの10個の穴に隠れます。最初に穴1に行きます。 、および2回目毎回1つの穴(つまり、穴3)を探し、2回目は2つの穴(つまり、穴6)を探します。以下同様に、回数は無制限です。」しかし、キツネは出入りしました。朝から晩まで1,000回ウサギはまだ見つかりませんQ:ウサギはどこに隠れていますか?

#include<iostream>
using namespace std;
typedef int Sqlist[100];
//函数声明
void Initlist(Sqlist L, int n);//初始化兔子洞
void capture(Sqlist L, int n, int m);//捕捉兔子函数
void judge(Sqlist L, int n);//判断兔子位置
int main()
{
    
    
	int cavesize, time;
	cout << "请输入你要设置__个洞口:";
	cin >> cavesize;
	cout << "请输入狐狸寻找的次数:";
	cin >> time;
	Sqlist L;
	Initlist(L, cavesize);
	capture(L, cavesize, time);
	judge(L, cavesize);
	return 0;
}

void Initlist(Sqlist L, int n)
{
    
    
	int i;
	for (i = 1; i <= n; i++)
	{
    
    
		L[i] = 1;
	}
}

void capture(Sqlist L, int n, int m)
{
    
    
	int carry = 1, num = 0, i;
	for (i = 0; i < m; i++)
	{
    
    
		num = num + carry;
		if (num == n)L[n] = 0;
		else L[num % n] = 0;
		carry++;
	}
}

void judge(Sqlist L, int n)
{
    
    
	cout << "兔子可能的藏身之处为:";
	int i;
	for (i = 1; i <= n; i++)
	{
    
    
		if (L[i] == 1)
		{
    
    
			cout << i << "号洞" << " ";
		}
		else
		{
    
    
		    cout<<"无"<<endl<<"狐狸逮到了兔子";
		    break;
		}
	}
	cout << endl;
}

(追記:設定するうさぎの穴が100を超える場合は、コードを再度変更する必要があります)

おすすめ

転載: blog.csdn.net/gets_s/article/details/104996411