郑州轻工业大学oj题解(c语言)2118: 两只老虎 玲珑杯简单
2019-12-26 本文已影响0人
缘点点
今天早上把悬了好几周的作业交了,科技节也在昨天结束了,实训前两天也交了,作业好像都七七八八的完成了,前段时间一堆迫在眉睫的事情好像突然全部消失了。。。
之前在看点看过一个报道说一个女白领连续加班了一个月后,项目完成了,不用加班了,她反而在地铁站崩溃哭了。或许现在我也能体会她那种感觉了吧。。。
现代成年人的崩溃永远不会在过程中出现,只会在放弃后或者过程后才出现。所有的压力是一直压着的,平时遮遮掩掩,藏得好好的人,总会在一个点释放出来。
2118: 两只老虎
- 题目描述
来,我们先来放松下,听听儿歌,一起“唱”。
两只老虎两只老虎,跑得快跑得快。
一只没有耳朵,一只没有尾巴。
真奇怪,真奇怪。
Tmk也觉得很奇怪,因为在他面前突然出现了一群这样的老虎,有的没耳朵,有的没尾巴,不过也有正常的。
现在Tmk告诉你这群老虎的耳朵个数,尾巴条数,以及老虎的腿的数目,问你有多少只是正常的。
其中只有三种老虎:
第一种(正常的):有2个耳朵、1条尾巴、4条腿
第二种(没耳朵):有0个耳朵、1条尾巴、4条腿
第三种(没尾巴):有2个耳朵、0条尾巴、4条腿 - 输入
第一行一个整数T表示有多少组样例。
接下来每一行一个样例:
包含三个整数a,b,c表示总共有a个耳朵,b条尾巴,c(<=4000)条腿,数据保证有解。 - 输出
对于每组样例输出一行,表示有多少只正常的老虎。 - 参考代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int a,b,c;
int a1,b1,c1;
scanf("%d%d%d",&a,&b,&c);
a1=a/2;
b1=b;
c1=c/4;
printf("%d\n",a1+b1-c1);
}
return 0;
}
- 代码解析:
在做题前我们不妨先列个表格出来理清一下题目的脉络。
正常的 | 没耳朵 | 没尾巴 | |
---|---|---|---|
耳朵 | 2 | 0 | 2 |
尾巴 | 1 | 1 | 0 |
腿 | 4 | 4 | 4 |
对比这个表,我们发现,正常的与其他有区别的地方分别在耳朵与尾巴上。而腿的数目是固定的,这就说明,我们根据腿的个数是可以直接确定实际老虎的总个数的。(腿数×4)
那么我们把这里的耳朵数/2,尾巴数/1(为了表达方便,实际不变),得出耳朵能长成正常的老虎的个数及,尾巴能长成正常的老虎的个数。这里的耳朵与尾巴分别安在实际老虎总个数上。最后同时拥有正常的耳朵与正常的尾巴的老虎便是正常的老虎。
耳朵和尾巴已经确定了老虎的个数,腿的数量是一样的,在三种类型下,所以减去多余重复的就OK了。
(相信这里一头雾水的人是不少的)
我们用一个例子来说明大家可能能明白一些,例如题目的样例是输入12 7 40,输出是3。
即这里有12只耳朵,7条尾巴,40条腿,我们把耳朵数,12/2=6,尾巴数7/1=7;6+7=13,腿数是大家都正常的,这里为40/4=10,13-10恰好=3。
如果大家觉得这个例子是巧合的话可以用更多的实验数字去验证一下。
最后说点题外话,记得之前当代班刚结束那个周末也崩溃过一次,之前太忙的那一段时间没什么感觉,一切重担丢下那个下午突然就崩溃了,原来这样突然的崩溃我也不是一两天了。。。