soj2060欧拉公式

6 篇文章 0 订阅
2 篇文章 0 订阅

第一次接触欧拉公式的应用。。。学习了。。

正多面体的每个面是正n边行,每个顶点是m条棱,于是,棱数E应是F(面数)与n的积的一半,即 
Nf=2E -------------- 1式 
同时,E应是V(顶点数)与M的积的一半,即 
mV=2E -------------- 2式 
由1式、2式,得 
F=2E/n, V=2E/m, 
代入欧拉公式 
V+F-E=2, 
有 
2E/m+2E/n-E=2 
整理后,得1/m+1/n=1/2+1/E. 
由于E是正整数,所以1/E>0。因此 
1/m+1/n>1/2 -------------- 3式 
3式说明m,n不能同是大于3,否则3式不成立。另一方面,由于m和n的意义(正多面体一个顶点处的棱数与多边形的边数)知,m>=3且n>=3。因此m和n至少有一个等于3 
当m=3时,因为1/n>1/2-1/3=1/6,n又是正整数,所以n只能是3,4,5 
同理n=3,m也只能是3,4,5 

所以 
n m 类型 
3 3 正四面体 
4 3 正六面体 
3 4 正八面体 
5 3 正十二面体 
3 5 正二十面体 

由于上述5种多面体确实可以用几何方法作出,而不可能有其他种类的正多面体 
所以正多面体只有5种

#include<cstdio>
using namespace std;

int main()
{
    int m,n;
    while(scanf("%d %d",&m,&n)!=EOF)
    {
        if(m==3&&n==4||m==4&&n==6||m==3&&n==8||m==5&&n==12||m==3&&n==20)
            printf("Yes\n");
        else
            printf("No\n");
    }
    return 0;
}


再附个matrix67的博文吧 http://www.matrix67.com/blog/archives/6161

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值