zoukankan      html  css  js  c++  java
  • 判断x的m次方和y的m次方末尾三位数是否相等

    /*==============================================
    对于任意给定的两个正整数x和y,是否存在一个不超过
    100的正整数m使得x^m与y^m的末尾三位数相等呢?
    输入:x、y
    如果m存在则输出m,否则输出“no”
    ================================================*/

    #include<iostream>
    usingnamespace std;
    int main()
    {
            longlong X=1,Y=1,x,y,m,i;
            int a=0;
        cin>>x>>y;
        x=x%1000;
        y=y%1000;
        for(m=1;m<=100;m++)
            {
                    X=1;
                    Y=1;
                    for(i=1;i<=m;i++)
                {
                    X=(X*x)%1000;
                    Y=(Y*y)%1000;
                }
                    if(X%1000==Y%1000)
            {
                        cout<<m;
                        a=1;
                        break;
            }
            }   
        if(a==0)
        {
            cout<<"no";
        }
            return0;
    }

    其实可以用累乘的思想去做这个题,代码如下:

    #include<iostream>
    using namespace std;
    int main()
    {
        long long X=1,Y=1,x,y,m,i;
        int a=0;
        cin>>x>>y;
        x=x%1000;
        y=y%1000;
        X=1;
        Y=1;
        for(m=1;m<=100;m++)
        {
            X=(X*x)%1000;
            Y=(Y*y)%1000;   
            if(X%1000==Y%1000)
              {
                cout<<m;
                a=1;
                break;
              }
        }
        if(a==0)
        {
            cout<<"no";
        }
        return 0;
    }
  • 相关阅读:
    团队项目-选题报告
    图论3-分层图最短路
    图论2-次短路计数
    图论1-k短路
    noi online 提高组t2冒泡排序
    图和树
    搜索(bfs)
    搜索(dfs)
    笔记
    打工
  • 原文地址:https://www.cnblogs.com/huashanqingzhu/p/3436731.html
Copyright © 2011-2022 走看看