题目来源:码蹄集
https://matiji.net/exam/brushquestion/281/778/B3FCFEC101BD05189BB74D522E019504
时间限制:1000ms
内存限制:65535kb
题目描述:输入正整数N(<1500),首先计算其逆序数M(比如12逆序后是21)。 然后输出N的M次方的最后3位数。
输入格式:输入正整数N
输出格式:输出整型
输入样例:12
输出样例:112
参考程序:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
#define ll long long
int main(){
string a;
cin >> a;
ll ans = 0 , now = 0;
for (int i = 0; i < a.length() ; i++){
ans = ans * 10 + a[i] - '0';
}
for (int i = a.length() -1 ; i >= 0; i--){
now = now * 10 + a[i] - '0';
}
ll s = 1;
//cout << ans <<" " << now << endl;
for (int i = 1; i <= now; i++){// 可以用快速幂解决
s = (s * ans) % 1000;
}
cout << s;
return 0;
}