PTA甲级考试真题练习1——1001 A+B Format

  • 题目:
    在这里插入图片描述
  • 思路:
    取出输入的数字的每一位数,存入栈中,然后维护一个mod3的计数器,到3就存入一个‘,’,最后出栈输出,注意为0和负数的情况
  • 代码:
#include <iostream>
#include<stack>
using namespace std;
int main()
{
	int a, b,num;
	bool isFu = false;
	cin >> a >> b;
	num = a + b;
	int i = 0;
	stack<char> stack;
	if (num < 0)
	{
		isFu = true;
		num = -num;
	}
	if (num == 0)
	{
		stack.push(0);
	}
	while (num != 0)
	{
		stack.push(num % 10);
		num = num / 10;
		++i;
		if (i == 3 && num!=0)
		{
			stack.push(',');
			i = 0;
		}
	}
	if (isFu)
	{
		stack.push('-');
	}
	while(stack.size())
	{
		if (stack.top() != ','&& stack.top() != '-')
		{
			int num = (int)stack.top();
			cout << num;
		}
		else
		{
			cout << stack.top();
		}
		stack.pop();
	}
}
发布了33 篇原创文章 · 获赞 3 · 访问量 614

猜你喜欢

转载自blog.csdn.net/qq_43647628/article/details/104618622