现在的位置: 首页 > 综合 > 正文

hdu 1061 Rightmost Digit(水题,打表)

2017年11月23日 ⁄ 综合 ⁄ 共 537字 ⁄ 字号 评论关闭

小记:原来任意数对0取模是个RE。 

思路:
从0-9,每一位数字的N次方都会有一个循环节,找出这个循环节,制成表。 然后输出一个就可直接输出一个了。
因为只看最右边那个位的数,所以先取模保存个位,然后将输入的数对该个位数字的循环节取模,输出即可。

代码:

#include <iostream>
#include<math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
using namespace std;


#define mst(a,b) memset(a,b,sizeof(a))
#define eps 10e-8


const int MAX_ = 31;


int num[MAX_][6] = {{0},{1,1},
{4,2,4,8,6},
{4,3,9,7,1},
{2,4,6},
{1,5},
{1,6},
{4,7,9,3,1},
{4,8,4,2,6},
{2,9,1}
};


int main(){
    //freopen("f:\\out.txt","w",stdout);
    int n, T;
    cin>>T;
    while(T--){
        cin>>n;
        int t = n%10;
        cout<<num[t][t?--n%num[t][0]+1:0]<<endl;
    }
    return 0;
}

抱歉!评论已关闭.