zoukankan      html  css  js  c++  java
  • HDU1061

    Given a positive integer N, you should output the most right digit of N^N. 

    Input

    The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. 
    Each test case contains a single positive integer N(1<=N<=1,000,000,000). 

    Output

    For each test case, you should output the rightmost digit of N^N. 

    Sample Input

    2
    3
    4

    Sample Output

    7
    6

    思路:这题是真正的水题,直接套用模板QAQ

    #include<bits/stdc++.h>
    using namespace std;
    long long PowerMod(long long a, long long b, long long c)
    {
        long long ans = 1;
        a = a % c; //对刚进来的a进行取模运算,避免后面第一次求平方运算溢出
        while(b)
        {
            if(b&1) //相当于b % 2 = = 1对二进制下的 b 进行按位与1运算,求二进制下 b 的最低位是否为1
                ans = ans * a % c; //对结果进行保存
            b>>=1; //相当于b = b/2;二进制下的 b 右移一位,相当于十进制下的 b 除以2
            a = a * a % c;
        }
        return ans;
    }
    
    int main()
    {
        long long t,n,m;
        cin>>t;
        while(t--)
        {
            cin>>n;
            m=PowerMod(n,n,10);
            cout<<m<<endl;
        }
        return 0;
    }
  • 相关阅读:
    数据类型对照表
    MySql
    操作MongoDB
    Linux常用命令
    MongoDB性能参数
    有关Remoting的几个结论与论证
    异步获取远程文件
    Bigtable:一个分布式的结构化数据存储系统(转)
    windbg命令
    C#下几种排序算法
  • 原文地址:https://www.cnblogs.com/aerer/p/9931036.html
Copyright © 2011-2022 走看看