ACM-竞赛预测

参考:http://blog.csdn.net/ssw_1990/article/details/25737237

题目:

3位老师对某次学生竞赛进行了预测,他们的预测如下:

甲说:学生A得第一名,学生B得第三名。
乙说:学生C得第一名,学生D得第四名。
丙说:学生D得第二名,学生A得第三名。

竞赛结果表明,它们各说对了一半,说错了一半,并且无名次并列,试编程输出a,b,c,d各自的名次。

解析:

起初准备寻找一种一般性的算法,也是穷举法,但尝试了很多次,发现都没有得到正确的结果,存在很多的bug,自己刚开始做ACM,水平还是很有限,很多问题都没有考虑到。最后只能参考别人方法做出来了。希望自己AC过一定的题量之后再来做这道题,能够把我现在没有实现的算法完成。

#include <stdio.h>

int main()
{
	int a, b, c, d;
	for (a = 1; a <= 4; a++)
	{
		for (b = 1; b <= 4; b++)
		{
			if(a != b)
			{
				for (c= 1; c <= 4; c++)
				{
					d = 10 - a - b -c;
					//printf("a = %d, b=%d, c=%d, d= %d\n",a, b, c,d);
					if ( ( (a == 1) + (b == 3) ==1) && ( (c ==1) + (d ==4) ==1 ) && ( (a==3) + (d ==2) ==1 ) )
					{
						printf("The ruslut is :\n\t\t a:%d, b:%d, c:%d, d:%d\n", a, b, c, d);
					}
				}

			}
		}
	}
	printf("Conditions for too little\n");
	return 0;
}


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值