HDU jrmz and angles

来源:互联网 发布:安卓 源码加密 混淆 编辑:程序博客网 时间:2024/05/19 03:27

jrMz and angles

Accepts: 594
Submissions: 1198
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
jrMz有两种角,第一种角都是正nnn边形的内角,第二种角都是正mmm边形的内角。jrMz想选出其中一些,某种角可以选多个或一个都不选,使得选出的所有角的度数之和恰好为360度。jrMz想知道这是否可能实现。
输入描述
有多组测试数据,第一行一个整数(1≤T≤10)\left(1\leq T\leq10\right)(1T10),表示测试数据的组数。对于每组测试数据,仅一行,两个整数n,m(3≤n,m≤100)n,m\left(3\leq n,m\leq100\right)n,m(3n,m100),之间有一个空格隔开。
输出描述
对于每组测试数据,仅一行,一个字符串,若可能实现则为Yes,若不可能实现则为No。
输入样例
34 83 105 8
输出样例
YesYesNo
Hint
第一组数据中,jrMz可以选择1个第一种角和2个第二种角,因为90+135+135=36090+135+135=36090+135+135=360。第二组数据中,jrMz可以选择6个第一种角,因为6×60=3606\times60=3606×60=360。第三组数据中,jrMz无法选出一些度数之和为360度的角。
#include <iostream>#include<cstdio>using namespace std;int main(){    int T;    int flag;    int a, b;    ///cin >> T;    scanf("%d", &T);    while(T--)    {        flag = 1;        ///cin >> a >> b;        scanf("%d %d", &a, &b);        float a1 = 180 - 360/a;        float b1 = 180 - 360/b;        for(int i=0; i<=100; i++)        {            for(int j=0; j<=100; j++)            {                if(a1*i + b1*j == 360)                {                    flag = 0;                    break;                }            }            if(flag == 0)                break;        }        if(flag == 0)            printf("Yes\n");        else            printf("No\n");    }    return 0;}


0 0
原创粉丝点击