题目描述:给出一个不多于5位的整数,进行反序处理,要求
(1)求出它是几位数
(2)分别输出每一个数字(空格隔开)
(3)按逆序输出各位数字(仅数字间以空格间隔,负号与数字之间不需要间隔)
输入描述:位数不大于5的整数
输出描述:1.整数位数 2.空格间隔输出结果 3.逆序整数
第一种方法:
int GetSize(int n) {
int k = 10000;
while (k >= 1) {
int a = n / k;
if (a != 0) return k;
k /= 10;
}
}
int main() {
int n;
vector<int>num;
cin >> n;
int k = GetSize(n);
while (k >= 1) {
int a = n / k;
num.push_back(a);
n %= k;
k /= 10;
}
cout << num.size() << endl;
for (int i = 0; i < num.size(); i++) {
if (i < num.size() - 1) {
cout << num[i] << " ";
}
else
cout << num[i];
}
cout << endl;
reverse(num.begin(), num.end());//这里用到了库函数直接反转,可以使用栈
for (int i = 0; i < num.size(); i++) {
if (i < num.size() - 1) {
cout << num[i] << " ";
}
else
cout << num[i];
}
return 0;
}