A. k-rounding
time limit per test
1 second memory limit per test
256 megabytesFor 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 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.
input
375 4
output
30000
input
10000 1
output
10000
input
38101 0
output
38101
input
123456789 8
output
12345678900000000
题解:
强制类型转换会造成数据值变化。注意pow(,)是double类型的,
所以我自己写了个同功能的函数power(,)。
AC代码:
#include<iostream>
#include<cmath>
using namespace std;
long long power(long long a,long long k)
{
while(k--)
{
a*=10;
}
return a;
}
long long gcd(long long a,long long b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
long long n,k;
while(cin>>n>>k)
{
long long m=power(1,k);
cout<<m*(n/gcd(n,m))<<endl;
}
return 0;
}
今天也是元气满满的一天!good luck!