首尾数相加.cpp

/*******************************************
功能:    输入整数,并且按第一个+最后一个,第二个+倒数第二个..
         的顺序相加,并输出结果。
作者:    gnehaoix      
时间:   2019\4\18
********************************************/
#include "stdafx.h"
#include<iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
	vector<int> s;
	int number;
	int sum;
	while (cin >> number)
	{
		s.push_back(number);
	}
	/*区分奇偶数*/
	if (s.size() % 2 == 0)   
	{
		for (string::size_type i = 0; i < s.size()/ 2; ++i)
			{
				sum = s[i] + s[s.size() - 1 - i];    /*从0开始计数,最后一个序号比总长度少1*/
				cout << sum << endl;
			}		
	}
	else
	{
		string::size_type i = 0;
		for (; i < s.size() / 2; ++i)
		{
			sum = s[i] + s[s.size() - 1 - i];
			cout << sum << endl;
		}
		cout << s[i] << endl;     /*最后输出中间的值*/
	}	
		
	return 0;
}
/*******************************************
文件名:firstEndSum(使用迭代器)
作者:    gnehoaix
功能:    输入整数,并且按第一个+最后一个,第二个+倒数第二个..
的顺序相加,并输出结果。
时间:    2019\4\20
********************************************/
#include "stdafx.h"
#include<iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
	vector<int> s;
	int number;
	int sum;
	while (cin >> number)
	{
		s.push_back(number);
	}	
	/*区分奇偶数*/
	if (s.size() % 2 == 0)
	{
		for (auto i = s.begin(); i != s.begin() + s.size() / 2 && !empty(s); ++i)
		{	
			
			sum = *i + *(s.end() - 1 - (i - s.begin()));    /*s.end() - 1为最后一个数的地址*/
			                                                /*i - s.begin()为每次循环后相对距离*/
			cout << sum << endl;
		}
	}
	else
	{
		auto i = s.begin();
		for (; i != s.begin() + s.size() / 2 && !empty(s); ++i)
		{
			sum = *i + *(s.end() - 1 - (i - s.begin()));
			cout << sum << endl;
		}
		cout << *i << endl;     /*最后输出中间的值*/
	}

	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36412427/article/details/89408592
cpp
今日推荐