码迷,mamicode.com
首页 > 其他好文 > 详细

分数拆分

时间:2014-05-09 20:53:37      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:暴力   分数拆分   小技巧   

                                                                                                     分数拆分
题目描述
输入正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y


输入
输入包括多行,每行一个正整数k,1<=k<=100000


输出
输出所有成立的分数式,按x从大到小的顺序


样例输入
2
12
样例输出
1/2=1/6+1/3
1/2=1/4+1/4
1/12=1/156+1/13
1/12=1/84+1/14
1/12=1/60+1/15
1/12=1/48+1/16
1/12=1/36+1/18
1/12=1/30+1/20
1/12=1/28+1/21

1/12=1/24+1/24

#include<iostream>
#define MAX 300000
using namespace std;
int main()
{
    int k;
    float c;
    while(cin>>k)
    {
        for(int i=k+1;i<=2*k;i++)      //y
            {
                c=(float)i*k/(i-k);
                int x=c;
                if(x==c&&x>0)
                    cout<<1<<‘/‘<<k<<‘=‘<<1<<‘/‘<<x<<‘+‘<<1<<‘/‘<<i<<endl;
            }
    }
 
}
这个题目即使根据x,y,k满足关系式可以判断出y大于k小于2k,同时x大于2k,

再通过先运算方式,就可以缩小穷举范围

同时需要考虑整型和浮点型的关系,直接做/法便会丢解

分数拆分,布布扣,bubuko.com

分数拆分

标签:暴力   分数拆分   小技巧   

原文地址:http://blog.csdn.net/u013240812/article/details/25410217

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!