zoukankan      html  css  js  c++  java
  • gcd(最大公约数)lcm(最小公倍数)E

    1.gcd

    递归实现

    int gcd(int i,int j)
    {
    if(j==0) return i;
    else return gcd(j,i%j);
    }

    2、lcm

    int gcd(int i,int j)
    {
    if(j==0) return i;
    else return gcd(j,i%j);
    }

    int lcm(int i ,int j)

    {

    return i*j/gcd(i*j);

    }

    3.

    E - Wolf and Rabbit

     兔子坑问题

    There is a hill with n holes around. The holes are signed from 0 to n-1. 



    A rabbit must hide in one of the holes. A wolf searches the rabbit in anticlockwise order. The first hole he get into is the one signed with 0. Then he will get into the hole every m holes. For example, m=2 and n=6, the wolf will get into the holes which are signed 0,2,4,0. If the rabbit hides in the hole which signed 1,3 or 5, she will survive. So we call these holes the safe holes. 

    InputThe input starts with a positive integer P which indicates the number of test cases. Then on the following P lines,each line consists 2 positive integer m and n(0<m,n<2147483648). 
    OutputFor each input m n, if safe holes exist, you should output "YES", else output "NO" in a single line. 
    Sample Input

    2
    1 2
    2 2

    Sample Output

    NO
    YES
    题目意思:狼抓兔子,输入m,n,狼能进入每相距为m的洞,洞的编号为0——n-1,如果狼每个洞都能进入,兔子就会被吃,问:兔子能不能存活?
    如果狼每一个洞都能进去,兔子才会必死无疑,即在剔除m为1,这种特殊情况后,m,n,不能存在倍数关系,那么狼便能进入每一个洞,即他们的最大公约数为1.
    #include <iostream>
    using namespace std;
    int gcd(int i,int j)
    {
        if(j==0) return i;
        else return gcd(j,i%j);
    }
    int main()
    {
        long long t,m,n;
        cin>>t;
        while(t--)
        {
            cin>>m>>n;
            if(gcd(m,n)==1)
                cout<<"NO"<<endl;
            else  cout<<"YES"<<endl;
        }
    }


  • 相关阅读:
    “约瑟夫问题”实现代码
    “百钱买百鸡”问题
    链栈的表示与实现
    个人作品Demo3PLY文件的读取
    系统程序员成长计划容器与算法(一)(下)
    循环单链表的建立
    链式队列元素删除实现
    使用链栈实现数制的转换
    系统程序员成长计划容器与算法(二)(上)
    个人作品Demo4STL文件读取
  • 原文地址:https://www.cnblogs.com/carry-2017/p/7260187.html
Copyright © 2011-2022 走看看