题目背景
本试题为 2023 年厦门市小学生 C++ 语言复赛试题,数据为洛谷自造。
初赛为笔试。
题目描述
微信交流非常方便,但也会有安全隐患,特别是在微信上传送密码是非常不好的习惯,为了提升安全性,小明设计了一个与朋友传送六位数字密码的方法,具体如下:小明给朋友发送两个整数 a 和 b,并发送 6 个无序的正整数,这 6 个正整数为 a 除以 b 所得商的小数点之后的位数,而密码就是小数点后的这 6 个位置上的数字。
输入格式
共两行,第一行为两个整数 a,b;
第二行为 6 个整数,分别为:x1,x2,x3,x4,x5,x6。
输出格式
共一行,六个数字,因为是密码,六个数字之间没有空格。
提示
样例解释
1/7=0.14285714286…,小数点后第 3 位的数字为 2,第 1 位的数字为 1,第 10 位的数字为 8,第 5 位的数字为 5,第 6 位的数字为 7,第 8 位的数字为 4,所以六位数字的密码为:218574。
数据范围
对于所有测试数据有:0<a<b<100,1≤x1,x2,x3,x4,x5,x6≤10000。
测试点编号 |
特殊性质 |
1≤x1,x2,x3,x4,x5,x6≤ |
1,2 |
A |
6 |
3,4 |
否 |
15 |
5,6 |
B |
10000 |
7,8 |
C |
9,10 |
否 |
其中:
- 特殊性质 A:保证 a/b 的商为有限小数,且小数点后从第 7 位开始往后(含第 7 位)都为 0;
- 特殊性质 B:保证 a/b 的商为无限循环小数,且最大从第 6 位(含第 6 位)开始往后均为一个数字的无限循环,例:0.3277777…,从第 3 位开始一个数字循环,保证循环起始位不会超过小数点后第 6 位;
- 特殊性质 C:保证 a/b 的商为无限循环小数,且循环位数在 3 位(含 3 位)及以内,保证循环起始位不会超过小数点后第 6 位,同时,x1,x2,x3,x4,x5,x6 所标记的位置在小数的循环位里。例:0.72313131…,循环为 31 两个数字,循环位数为 2 位,从第 3 位开始循环,故保证 x1,x2,x3,x4,x5,x6 均大于等于 3。