小白月赛22 F: 累乘数字
F:累乘数字
考察点: 思维,高精度
坑点 : 模拟就 OK
析题得侃:
如果你思维比较灵敏:直接输出这个数+ d 个 "00"就行了
当然,我还没有那么灵敏,只能用大数来搞了
Code:
#include <vector>
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int n,d;
int main(void) {
vector<int> mul(vector<int> &A,int b);
while(scanf("%d%d",&n,&d) != EOF) {
vector<int>temp;
while(n) {
temp.push_back(n % 10);
n = n / 10;
}
// reverse(temp.begin(),temp.end());
for(int i = 1; i <= d; i ++) {
temp = mul(temp,100);
}
for(int i = temp.size() - 1; i >= 0; i --) {
cout << temp[i];
}
cout << endl;
}
return 0;
}
vector<int> mul(vector<int> &A,int b) {
int t = 0;
vector<int> C;
for(int i = 0; i < A.size(); i ++) { // 模拟乘法过程
t += A[i] * b;
C.push_back(t % 10);
t /= 10;
}
while(t) { // 处理最后的那个数
C.push_back(t % 10);
t /= 10;
}
return C;
}
如果说年轻人未来是一场盛宴的话,那么我首先要有赴宴的资格。