原题
For a given positive integer n denote its k-rounding as the minimum positive integer x, such that x ends with k or more zeros in base 10 and 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.
The only line contains two integers n and k (1 ≤ n ≤ 109, 0 ≤ k ≤ 8).
Print the k-rounding of n.
样例
Sample 1
Inputcopy | Outputcopy |
---|---|
375 4 | 30000 |
Sample 2
Inputcopy | Outputcopy |
---|---|
10000 1 | 10000 |
Sample 3
Inputcopy | Outputcopy |
---|---|
38101 0 | 38101 |
Sample 4
Inputcopy | Outputcopy |
---|---|
123456789 8 | 12345678900000000 |
思路
其实就是求 n*1ek/gcd(n,1ek) 的值
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n,k;
ll sum;
int kk;
int gcd( int a, int b)
{
if(b==0)
return a;
gcd(b,a%b);
}
int main()
{
cin >> n >> k;
kk=pow(10,k);
sum=1LL*n/gcd(n,kk);
cout<<sum;
for(int i=1;i<=k;i++)
cout<<0;
return 0;
}