题目描述
LF收藏了很多精美的钻石。但是,LF收藏钻石有个嗜好,他收藏的钻石的形状必须满足两个条件:
(1)钻石上任意两个顶点都能够通过一条或多条棱相互联通。
(2)在钻石表面任意画一个圈,沿这个圈切开,一定能把钻石分成两部分。
大富豪LF对钻石的表面非常有兴趣,他知道,他所收藏的每颗钻石的顶点数v和棱数e,但他还不知道每颗钻石有多少个面,你能帮帮他吗?
输入
输入包括多组测试数据,你应当处理到EOF(End Of File)为止。对于每组测试数据,仅含有一行,包含两个正整数e和v,之间以一个空格隔开。
输出
对于每组测试数据,请输出一行,仅包含一个正整数f,表示钻石有多少个面。
样例输入
6 4
12 8
样例输出
4
6
paper tiger
钻石是一个封闭的凸多面体。根据欧拉公式,对于一个凸多面体,其面数F、顶点数V和棱数E之间存在关系:F + V = E + 2。
由于题目给出了顶点数v和棱数e,我们可以通过代入欧拉公式中的顶点数V和棱数E来求解面数F。
代入欧拉公式 F + V = E + 2,求解面数F。 F = E - V+2
#include <bits/stdc++.h>
using namespace std;
int main()
{
int e,v;
while(scanf("%d %d",&e,&v)!=EOF)
{
printf("%d\n",e-v+2);
}
return 0;
}