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;
}

总结

水题,不解释

目录
打赏
0
0
0
0
62
分享
相关文章
计算sum=1+2...+n,要求number和sum的类型都是int,且sum在32位以内~
计算sum=1+2...+n,要求number和sum的类型都是int,且sum在32位以内~
sum函数
sum函数
158 0
HDOJ 1003 Max Sum
HDOJ 1003 Max Sum
114 0
HDOJ1003Max Sum
HDOJ1003Max Sum
98 0
算法题丨3Sum
描述 Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.
1255 0
算法题丨Two Sum
描述 Given an array of integers, return indices of the two numbers such that they add up to a specific target.
1188 0
1. Two Sum
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
796 0
Two Sum
Given an array of integers, find two numbers such that they add up to a specific target number.
792 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等