目录
泡泡

** 泡泡:** <Excerpt in index | 首页摘要>

<The rest of contents | 余下全文>

泡泡
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 52(27 users) Total Accepted: 28(26 users) Rating: Special Judge: No
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了好几次

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#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");
}
}
}
文章作者: 爱笑的k11
文章链接: http://1315402725.github.io/posts/1039978f/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 爱笑的k11
打赏
  • 微信
  • 支付寶

评论