Each test case contains a single positive integer N(1<=N<=1,000,000,000).
2 3 4
7 6HintIn 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.
只需要把0、1、2、...、9各乘积的个位数保留下来,每次再输出即可。
ac代码
#include <iostream> using namespace std; int x[10][10]; int ux[10]; int NotIn(int a,int b); int main() { for(int i=0;i<10;i++) ux[i] = -1; for(int i=0;i<10;i++) { int use=i; int temp = use%10; int j=0; while(NotIn(temp,i)) { ux[i]++; x[i][j++] = temp; use*=i; temp = use%10; //cout << x[i][j-1] <<" "; } //cout << endl; } int N; cin >> N; for(int i=0;i<N;i++) { long long ss; cin >> ss; int a = ss%10; int b = (ss)%(ux[a]+1); if(b>0) cout << x[a][b-1]<< endl; else cout << x[a][ux[a]]<<endl; } return 0; } int NotIn(int a,int b) { for(int j=0;j<=ux[b];j++) if(a==x[b][j]) return 0; return 1; }