#6600. A. 圆数之和
A. 圆数之和
Codeforces Round 640 (Div. 4)
A. 圆数之和
时间限制: 1 秒 内存限制: 256 MB
我们称一个正整数(大于 0)是 圆数,如果它的形式是 即除了最高位(最左边的数字)外,其余所有数字都是 0。
特别地,从 1 到 9 的所有整数都是圆数。
例如,下面这些是圆数:
- 4000
- 1
- 9
- 800
- 90
下面这些不是圆数:
- 110
- 707
- 222
- 1001
问题描述
给定一个正整数。请把 (n) 表示为若干个圆数之和,要求加数的个数尽可能少。
换句话说,你需要用尽量少的圆数相加得到 (n)。
输入
第一行包含一个整数 —— 测试用例的数量。
接下来每个测试用例包含一行,一个整数 。
输出
输出 (t) 组答案。
对于每个测试用例:
- 首先输出一个整数 (k) —— 表示最少的加数个数;
- 然后输出 (k) 个圆数,它们的和等于 (n)。
加数可以以任意顺序输出。若有多种方案,输出任意一种即可。
示例
输入
5
5009
7
9876
10000
10
输出
2
5000 9
1
7
4
800 70 6 9000
1
10000
1
10