泡泡 | ||||||
|
||||||
Description | ||||||
深海里面有无数泡泡,每个泡泡上都写着一个数字(0~9)。现在有一伙泡泡在一起组成了一个小队并且队头的泡泡上的数字不是0,我们可以把这几个泡泡组成的队伍看成一个数a。泡泡们觉得自己的队伍太小,决定准备从队尾依次加入n个新泡泡。但是泡泡们的老大是一个很挑剔的泡泡,他说如果某个泡泡想加入队伍,必须满足加入之后队伍组成的数可以被b整除,举例而言,如果某个泡泡(表示的数为x) 在加入队伍之前,现有的队伍表示的数为k,那么必须满足(k*10+x)% b=0 ,这个泡泡才能加入队伍。 现在这伙泡泡想知道在挑剔泡泡头的统治之下是否能在队尾成功加入n个新的泡泡。 |
||||||
Input | ||||||
多组测试数据,每组有3个数a, b, n。 (1 ≤ a, b, n ≤ 105).
|
||||||
Output | ||||||
对于每组测试数据,如果可以在队尾加入n个新的泡泡,那么就输出最终的队伍所表示的数字,如果有多种情况就输出字典序最小的一个,如果不存在答案,输出-1。 | ||||||
Sample Input | ||||||
5 4 5 3 4 1 |
||||||
Sample Output | ||||||
520000 32 |
||||||
Author | ||||||
曾卓敏 @hrbust |
想的太少结果wr了好几次
#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> #include<math.h> using namespace std; int main() { int a,b,n; while(~scanf("%d%d%d",&a,&b,&n)) { int sum=a; int i; if((b-(sum*10)%b)>9&&(sum*10)%b!=0)//这里需要判断是不是能整除 { printf("-1\n"); } else { if((sum*10)%b==0) { printf("%d",a); for(i=0;i<n;i++) { printf("0"); } } else { printf("%d%d",a,b-(sum*10)%b); for(i=1;i<n;i++) { printf("0"); } } printf("\n"); } } }