zoukankan      html  css  js  c++  java
  • zzuli 1905 小火山的跳子游戏

    Description

      小火山和火山火山在一块玩跳子游戏。规则如下:
      1:跳子的起始位置为0,棋盘大小从1到N
      2:每次跳子跳k步。 例如当前位置为i, 那么下一步为i + k
      3:跳子过程中,碰到1或N则往回跳。例如当前位置为4, N = 6, K = 5的
    时候, 那么下次跳子, 应该是 5, 6, 5 ,4, 3。最后落在3的位置, 再一次
    跳子为2 1 2 3 4。最后落在4的位置;
      现在小火山想知道经过任意次跳子最后能否将这个棋盘上的每个数字都走过。
     

    Input

    输入第一行是一个整数T(T <= 20000), 表示一共有T组数据。
    每一组数据都有两个整数N, K(1 <= K ,N <= 5000)
     

    Output

    对于每组数据,如果可以将这个棋盘上的每个数字都走过则输出"Yes", 否则输出"No"

    Sample Input

    2
    6 4
    2 1
    

    Sample Output

    No
    Yes

    gcd问题,棋盘可以看成圆形,求棋盘上的点数和步数的最大公约数,若为一说明能把圆上的点走一遍。
     1 #include<cstdio>
     2 int gcd(int a,int b)
     3 {
     4     if(a % b == 0)
     5         return b;
     6     else
     7         return gcd(b,a%b);
     8 }
     9 int main()
    10 {
    11     int t;
    12     scanf("%d",&t);
    13     while(t--)
    14     {
    15         int n,k;
    16         scanf("%d %d",&n,&k);
    17         if(gcd(2*n-2,k) == 1)
    18             printf("Yes
    ");
    19         else
    20             printf("No
    ");
    21     }
    22 }
  • 相关阅读:
    spark第一篇--简介,应用场景和基本原理
    一个Cmake的例子
    smarty 快速上手
    smarty 学习记录
    学习记录
    二进制八进制 十六进制
    高并发访问和海量数据 大型网站架构技术一览
    nosql简述
    微擎/微赞开发示例 学习记录
    好博客收藏
  • 原文地址:https://www.cnblogs.com/yexiaozi/p/5758086.html
Copyright © 2011-2022 走看看