hdu 1061 Rightmost Digit

来源:互联网 发布:生态学现状知乎 编辑:程序博客网 时间:2024/06/05 09:34

Rightmost Digit

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 57040    Accepted Submission(s): 21561


Problem Description
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
234
 

Sample Output
76
Hint
In the first case, 3 * 3 * 3 = 27, so the rightmost digit is 7.In the second case, 4 * 4 * 4 * 4 = 256, so the rightmost digit is 6.

 


就是求n的n次方,快速幂就可以了。




#include<iostream>using namespace std;int main(){    int T;    cin>>T;    while(T--)    {        long long int n;        cin>>n;        long long int mi=n;        long long int ans=n;        n=n%10;        ans=n%10;        mi--;        while(mi>=1)        {            if(mi%2==1)            {                mi--;                ans=n*ans%10;            }            if(mi%2==0)            {                mi=mi/2;                n=n*n%10;            }        }        ans=ans%10;        cout<<ans<<endl;    }    return 0;}


原创粉丝点击