Sum of Round Numbers

简介: Sum of Round Numbers

文章目录

一、Sum of Round Numbers

总结


一、Sum of Round Numbers

本题链接:Sum of Round Numbers


题目:

A. Sum of Round Numbers

time limit per test1 second

memory limit per test256 megabytes

inputstandard input

outputstandard output

A positive (strictly greater than zero) integer is called round if it is of the form d00...0. In other words, a positive integer is round if all its digits except the leftmost (most significant) are equal to zero. In particular, all numbers from 1 to 9 (inclusive) are round.


For example, the following numbers are round: 4000, 1, 9, 800, 90.The following numbers are not round: 110, 707, 222, 1001.


You are given a positive integer n (1≤n≤1e4). Represent the number n as a sum of round numbers using the minimum number of summands (addends). In other words, you need to represent the given number n as a sum of the least number of terms, each of which is a round number.


Input

The first line contains an integer t (1≤t≤1e4) — the number of test cases in the input. Then t test cases follow.


Each test case is a line containing an integer n (1≤n≤1e4).


Output

Print t answers to the test cases. Each answer must begin with an integer k — the minimum number of summands. Next, k terms must follow, each of which is a round number, and their sum is n. The terms can be printed in any order. If there are several answers, print any of them.


Example

input

5

5009

7

9876

10000

10

output

2

5000 9

1

7

4

800 70 6 9000

1

10000

1

10

本博客给出本题截图


image.png

题意:把一个数的每一位按照如下例子拆分出来,例如9872 = 9000 + 800 + 70 + 2,输出拆分后的数字的个数和这些数字,对于这个例子我们需要输出4(拆开后4个数),9000 800 70 2

AC代码

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int t;
    cin >> t;
    while (t -- )
    {
        string a;
        cin >> a;
        int cnt = 0;
        for (int i = 0; i < a.size(); i ++ )
            if (a[i] != '0') 
                cnt ++;
        cout << cnt << endl;
        for (int i = 0; i < a.size(); i ++ )
        {
            if (a[i] == '0') continue;
                cout << a[i];
            for (int j = i; j < a.size() - 1; j ++ )
                cout << 0;
            cout << ' ';
        }
        puts("");
    }
    return 0;
}

总结

水题,不解释

目录
相关文章
|
7月前
|
SQL 关系型数据库 MySQL
ROUND
ROUND
57 5
|
机器学习/深度学习
计算sum=1+2...+n,要求number和sum的类型都是int,且sum在32位以内~
计算sum=1+2...+n,要求number和sum的类型都是int,且sum在32位以内~
|
人工智能 算法
1305:Maximum sum
1305:Maximum sum
|
SQL
sum函数
sum函数
145 0
|
人工智能
Next Round
Next Round
112 0
Next Round
Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整。
1779 0
1. Two Sum
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
786 0
|
索引
Two Sum
Given an array of integers, find two numbers such that they add up to a specific target number.
771 0
|
算法 机器学习/深度学习