UVa 10976 - Fractions Again?!

题目:输入一个正整数k,找到所有的正整数x>=y,使得1/k = 1/x + 1/y.

解题思路:x>=y,1/x<=1/y; 推出x<=2k; 在2k范围内枚举y;然后根据y尝试计算出x即可。

 

////////并没有提交过。只是具体思路。

 1 #include"iostream"
 2 using namespace std;
 3 void Fractions(float k){
 4     for(float y=2;y<=2*k;y++){
 5         float x=k*y/(y-k);
 6         if(int(x)==x&&x>0)
 7             cout<<"x="<<x<<"y="<<y<<endl;
 8     }
 9 }
10 int main(){
11     float k;
12     cin>>k;
13     Fractions(k);
14 }

 

y尝试计算出X即可。

posted @ 2016-03-18 23:37  Hutonm  阅读(123)  评论(0编辑  收藏  举报