0
点赞
收藏
分享

微信扫一扫

蓝桥杯 算法训练 按位输出数字

清冷的蓝天天 2022-03-18 阅读 62

一、题目

设计一个程序,从键盘输入一个不超过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;
}

在这里插入图片描述

举报

相关推荐

0 条评论