一、题目
设计一个程序,从键盘输入一个不超过5位的正整数(即1~99999),按顺序输出其所有数字,中间用一个空格格开,要求使用if语句编写。例如,如果用户从键盘输入123,则程序输出1 2 3。
输入格式
输入一个整数n
输出格式
输出这个整数的每位数字,以空格隔开。
样例输入
123
样例输出
1 2 3
数据规模和约定
1<=n<=99999
二、思路
取余,得到低位依次压入栈,再除10去掉低位,循环这个过程直到最后一位。
for (;;)
{//这个处理办法很像递归
if (n % 10 == n) //如果是最高位,则结束
{
s.push(n % 10);
break;
}
s.push(n % 10); //取出低位
n /= 10;
}
三、代码
#include <iostream>
using namespace std;
#include <stack>
stack<int> s;
//取数
int main()
{
int n;
cin >> n;
for (;;)
{//这个处理办法很像递归
if (n % 10 == n) //如果是最高位,则结束
{
s.push(n % 10);
break;
}
s.push(n % 10); //取出低位
n /= 10;
}
while (!s.empty())
{
printf("%d ",s.top());
s.pop();
}
return 0;
}