Loading

【题解】Codeforces[CF1352A] Sum of Round Numbers

应该是纯模拟吧。

直接输入一个字符串,然后一位一位看,如果不是0,就 k++,并计算这个数的真实的值,最后输出就行了。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define line cout << endl
using namespace std;
int t, k, sum = 1/*位数*/, a[10], cnt;
char n[10];
int main() {
	cin >> t;//T组数据
	for (int T = 1; T <= t; T++) {
		cin >> n;
		int len = strlen(n);
		for (int i = len - 1; i >= 0; i--) {
			if (n[i] != '0') {//如果这一位不是0
				k++;//总数++
				a[++cnt] = (n[i] - '0') * sum;//算一下这一位真实的值
			}
			sum *= 10;//位数++
		}
		cout << k;
		line;
		for (int i = 1; i <= cnt; i++) {
			cout << a[i] << " ";
		}
		line;
		k = 0;//初始化
		sum = 1;//初始化
		memset(a, 0, sizeof(a));//初始化
		cnt = 0;//初始化
	}
	return 0;
}

CF记录

posted @ 2020-07-22 19:45  AgrumeStly  阅读(170)  评论(0编辑  收藏  举报