狼找羊问题

一个环型有10个洞,一兔子藏在其中一个洞,某狼钻进第一个洞找不到兔子,就隔一个洞,从第三个洞进去找,
还是找不到就隔两个洞,从第六个洞找,找不到就隔三个洞,以此类推.
狼一直找不到兔子,问兔子有可能在哪一个洞?

#include <stdio.h>

int wolf = 1;
int i = 1;
int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };    //代表10个洞
int n = 0;

int yn(a)    //判断狼会找哪些洞的函数
{
	if (wolf % 10 == a)    //若满足则把洞的代表值赋为20,防止打印函数中把这个洞打印出来
		return 20;
	else
		return a;
}
void pf(b)
{
	if (b < 12)    //为了使yn函数中被赋值成20的洞不被打印
		printf("%d ", b);    //打印出所有不会被狼找的洞
}
int main()
{
	for (wolf = 3, i = 2; 1; wolf += i)
	{
		if ((wolf % 10) == 1 && (i % 10) == 1)//狼遍历可能会抓的洞,也是数组arr中10号洞被赋
                                              //为0的原因
			break;
		for (n = 0; n <= 9; n++)
		{
			arr[n] = yn(arr[n]);
		}
		i++;
	}
	if(arr[9] != 20)    //如果10号洞不会被狼找就不会被赋成20
		arr[9] = 10;    //使10号洞能够被打印成10而不是0
	for (n = 0; n < 10; n++)
	{
		pf(arr[n]);
	}
	return 0;
}

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值