ACM专题---做题目

发布时间 2023-11-01 15:28:35作者: 一名博客

简介

ACM
纯写题,写思路,写代码

题目

A+B问题I

思路: 不管是a还是b,反正是两变量,而且你的输入不能断,输入一对a、b,给出和的结果;

那就是定义两变量,用一个循环,搞定

#include <iostream>

using namespace std;
int main()
{
	int a, b;
	while (cin >> a >> b)
		cout << a + b << endl;
	return 0;
}

A+B问题II


思路:与上方问题保持一致,但它给多了一个N,其实就是一个输入N的循环

#include <iostream>
int main()
{
	int N;
	int a, b;
	while (std::cin >> N)
	{
		while (N--)
		{
			std::cin >> a >> b;
			std::cout << a + b << std::endl;
		}
	}
	return 0;
}

A+B问题III

思路:与上面的大循环一样的结构,增加了标志输入结束,其实就是一个判断条件,不需要计算,那中断这个循环就不会计算了

#include <iostream>
int main()
{
    int a, b;
	while (std::cin >> a >> b)
	{
		if (0 == a && 0 == b)
			break;
		std::cout << a + b << std::endl;
	}
	return 0;
}

A+B问题IV

思路:与上面的大循环一样的结构,但是循环的条件变了,变成输入N

#include <iostream>
int main()
{
	int N;
	int a, sum = 0;
	while (std::cin >> N)
	{
		if (0 == N)
			break;
		while (N--)
		{
			std::cin >> a;
			sum += a;
		}
		std::cout << sum << std::endl;
		sum = 0;
	}
	return 0;
}

A+B问题VII

思路:很简单,就是在I的基础上加多一个换行符

#include <iostream>
int main()
{
	int a, b;
	while (std::cin >> a >> b)
	{
		std::cout << a + b << std::endl;
		std::cout << std::endl;
	}
	return 0;
}

A+B问题VIII

思路:两层循环一个是总的输出M,然后是单个输出的数量N

#include <iostream>
int main()
{
	int M, N;
	int a, sum = 0;
	while (std::cin >> M)
	{
		while (M--)
		{
			std::cin >> N;
			while (N--)
			{
				std::cin >> a;
				sum += a;
			}
			std::cout << sum << std::endl;
			sum = 0;
			if (0 != M)
				std::cout << std::endl;
		}
	}
	return 0;
}