1.題目描述
A,B,C三個人是好朋友,每個人手裏都有一些糖果,我們不知道他們每個人手上具體有多少個糖果,但是我們知道以下的信息:
A - B, B - C, A + B, B + C. 這四個數值.每個字母代表每個人所擁有的糖果數.
現在需要通過這四個數值計算出每個人手裏有多少個糖果,即A,B,C。這裏保證最多隻有一組整數A,B,C滿足所有題設條件。
輸入描述:
輸入爲一行,一共4個整數,分別爲A - B,B - C,A + B,B + C,用空格隔開。 範圍均在-30到30之間(閉區間)。
輸出描述:
輸出爲一行,如果存在滿足的整數A,B,C則按順序輸出A,B,C,用空格隔開,行末無空格。 如果不存在這樣的整數A,B,C,則輸出No
示例1
輸入
1 -2 3 4
輸出
2 1 3
2.代碼展示
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v(4);
for (int i=0; i<4; ++i)
{
cin>>v[i];
}
int A = (v[0]+v[2])/2;
int B1 = (v[1]+v[3])/2;
int B2 = (v[2]-v[0])/2;
int C = (v[3]-v[1])/2;
if (B1==B2)
cout<<A<<" "<<B1<<" "<<""<<C<<endl;
else
cout<<"No"<<endl;
return 0;
}
3.解題分析
這個題主要就是通過表達式判斷計算出來的B是否相等,相等則按要求輸出,不相等則輸出No。