本文共 547 字,大约阅读时间需要 1 分钟。
输入正整数K,找到所有的正整数x>=y,使得1/k = 1/x+1/y
样例输入: 2 12 样例输出:对等式进行化简,然后得到K,x,y的一个关系式:
x = k*y/(y-k); 然后对y进行遍历,y肯定是大于k小于等于2*k,这个可以通过那个公式判断 然后遍历时候算出x,如果算出X为整数切X大于等于Y,则输出结果 = =// author:seen/// 算法竞赛_分数拆分#includeusing namespace std;int main(){ int k; while(cin>>k &&k){ for(int y=k+1;y<=2*k;y++){ float x= (float)k*y/(y-k); int temp =(int)x; //判断X是否为整数的一个方法 if(temp==x &&x>=y){ cout< <<" "< <<" "< <
注:算出来的那三列数分别对应K, x, y