A. Sum of Round Numbers
题目链接-A. Sum of Round Numbers
题目大意
给你一个数
n
n
n,把这个数拆成若干个除首位都是
0
0
0的数字的和,输出拆分的后的每个数
解题思路
- 按照字符串的形式输入,然后遍历字符串,如果该位不为
0
,就在该位数字后加上相应位数的 0 0 0,存入vector
- 然后输出
vector
的大小,再输出vector
中存入的所有数即可 - 具体操作见代码
附上代码
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
#define int long long
#define lowbit(x) (x &(-x))
#define endl '\n'
using namespace std;
const int INF=0x3f3f3f3f;
const int dir[4][2]={-1,0,1,0,0,-1,0,1};
const double PI=acos(-1.0);
const double e=exp(1.0);
const double eps=1e-10;
const int M=1e9+7;
const int N=2e5+10;
typedef long long ll;
typedef pair<int,int> PII;
typedef unsigned long long ull;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int t;
cin>>t;
while(t--){
string n;
cin>>n;
vector<int> v;
int l=n.length();
for(int i=0;i<l;i++){
if(n[i]!='0'){
v.push_back((n[i]-'0')*pow(10,l-i-1));
}
}
cout<<v.size()<<endl;
for(int i=0;i<v.size();i++)
cout<<v[i]<<" ";
cout<<endl;
}
return 0;
}