本文主要是介绍PTA 7-34 杯具倒水,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
(机器人协会友情赞助)
在你面前有两个不规则的杯具,分别容积为a升和b升,还有一个水缸(水无限多)可供装水,那么能不能通过两个杯具的装倒水操作,量出c升的水?
输入格式:
输入的第一行包含一个整数n(n<100),表示包括表示测试数据数 接下来n行,每行三个整数a,b,c其中(1<=a
输出格式:
输出n行 每行输出一个整数,1表示可量出c升水,0表示不能
输入样例:
在这里给出一组输入。例如:
3
3 5 4
7 11 5
9 15 10
输出样例:
在这里给出相应的输出。例如:
1
1
0
这道题的意思应该是 还有另外一个杯子让你放倒出来的水
举例说明设a=3,b=5那么x=1;2a-b=x;也就是说把a倒满两次,每次倒满后倒入b中b满后将a倒空,a杯子中剩余的就是x了。再设a=7,b=5那么x=1;3a-4b=x,换言之就是把a倒满,每次倒满后都倒入b,如果b满了就将b倒空(若a倒满b后a非空,倒空b后把a剩余的倒入b中然后再倒满a),如此倒满3次a,倒空4次b后两容器剩余的就是x了。
可以看出来就是求最大公约数
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define PI 3.1415926;int main()
{int t,a,b,c;scanf("%d",&t);while(t--){scanf("%d%d%d",&a,&b,&c);// c=c%(a+b); 可有可无 这道题数据太小了if(a<b) swap(a,b);int r;while(b){r=a%b;a=b;b=r;}//printf("%d\n",a);if(c%a==0) printf("1\n");else printf("0\n");}return 0;
}
这篇关于PTA 7-34 杯具倒水的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!