标签:模拟
For a given positive integer n denote its k-rounding as the minimum positiveinteger x, such that x ends with k or more zeros in base 10and is divisible by n.
For example, 4-rounding of 375 is 375·80 = 30000. 30000 is the minimum integer such that it ends with 4 or more zeros and is divisible by 375.
Write a program that will perform the k-rounding of n.
Input
The only line contains two integers n and k (1 ≤ n ≤ 109, 0 ≤ k ≤ 8).
Output
Print the k-rounding of n.
Examples
input
375 4
output
30000
input
10000 1
output
10000
input
38101 0
output
38101
input
123456789 8
output
12345678900000000
题意:找到一个最小的数,满足下列条件:末尾至少有k个零且能够被n整除
模拟水题
Code
#include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) #define dep(i,a,b) for(int i=a;i>=b;i--) #define LL long long using namespace std; LL n,k,cnt5=0,cnt2=0; int main() { cin>>n>>k; while(n%5==0&&cnt5<k){n/=5;cnt5++;} while(n%2==0&&cnt2<k){n/=2;cnt2++;} rep(i,1,k)n*=10; cout<<n<<endl; return 0; }