G: 钻石(简单)

大富豪Mily收藏了很多精美的钻石。但是,Mily收藏钻石有个嗜好,他收藏的钻石的形状必须满足两个条件: (1)钻石上任意两个顶点都能够通过一条或多条棱相互联通。 (2)在钻石表面任意画一个圈,沿这个圈切开,一定能把钻石分成两部分。 大富豪Mily对钻石的表面非常有兴趣,他知道,他所收藏的每颗钻石的顶点数v和棱数e,但他还不知道每颗钻石有多少个面,你能帮帮他吗?
输入包括多组测试数据,你应当处理到EOF(End Of File)为止。 对于每组测试数据,仅含有一行,包含两个正整数e和v,之间以一个空格隔开。
对于每组测试数据,请输出一行,仅包含一个正整数f,表示钻石有多少个面。
6 4
12 8
4 6
如何处理输入结束呢? c: while(scanf(...)!=EOF) c++: while(cin>>a>>b) 具体可以看1001题的提示.
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <algorithm>
using namespace std;

int main()
{
    int v, e;
    //    Euler Theorem(v+f-e=2)
    while (scanf("%d%d", &e, &v) != EOF)
    {
        printf("%d
", 2 + e - v);
    }
    return 0;
}
以大多数人努力程度之低,根本轮不到去拼天赋~
原文地址:https://www.cnblogs.com/gcter/p/8608198.html