zoukankan      html  css  js  c++  java
  • Rightmost Digit(快速幂)

    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

    2 3 4
                  

    Sample Output

    7 6

    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. 
             

    方法一:
     1 #include <iostream>
     2 using namespace std; 
     3 int a[25]={0,1,4,7,6,5,6,3,6,9,0,1,6,3,6,5,6,7,4,9,0};
     4 int main()
     5 {
     6     int b,n; 
     7     cin>>b;
     8     while(b--)
     9     {
    10        cin>>n;
    11        cout<<a[n%20]<<endl; 
    12     }
    13     return 0 ;
    14 }


    方法二:

     1 #include<stdio.h>
     2 int my_power(int m, int n); // 求m的n次方的尾数
     3 int main()
     4 {
     5     int cases, n;
     6     scanf("%d", &cases);
     7     while(cases--)
     8     {
     9         scanf("%d", &n);
    10         printf("%d
    ", my_power(n, n));
    11     }
    12     
    13     return 0;
    14 }
    15 
    16 int my_power(int m, int n)
    17 {
    18     m = m%10;
    19     if(n == 1)
    20         return m;
    21     if(n%2 == 0)
    22         return ( my_power(m*m, n/2) ) % 10;
    23     else
    24         return ( my_power(m*m, n/2)*m ) % 10;
    25 }

        快速幂的时间复杂度是O(logn),n = 10亿时,大约32次递归调用就能出结果,效率极大的提高了

  • 相关阅读:
    P1121 环状最大两段子段和
    无题
    cdoj 1485 柱爷搞子串 sam treap
    自然数幂和
    Gym 100341C AVL Trees NTT
    线性筛分解质因子
    codeforces 366 Ant Man dp
    UVALive 6914 Maze Mayhem 轮廓线dp
    hdu 5790 Prefix 字典树 主席树
    莫比乌斯反演个人小结
  • 原文地址:https://www.cnblogs.com/wangmengmeng/p/4552455.html
Copyright © 2011-2022 走看看