zoukankan      html  css  js  c++  java
  • UVA

    题目描述

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

    输入

    第一行输入一个整数n,代表有n组测试数据。
    接下来n行每行输入一个正整数k

    输出

    按顺序输出对应每行的k找到所有满足条件1/k=1/x+1/y的组合

    思路:找出所有x,y,所以要枚举x,y。、

    但是没有x,y的范围啊,又不能一直枚举下去的

    依据题目给的几组数据关系 1/x<=1/y, 1/k=1/x+1/y

    故1/K-1/Y<=I/Y即y<=2k

    又x=a*y/(y-k)

    只需在k~2k之间枚举y计算x即可

    #include<cstdio>
    using namespace std;
    int main(){
        int a,y,an[1000],bn[1000];
        while(scanf("%d",&a)!=EOF){
            int cnt=0;
          for(y=a+1;y<=2*a;y++)
            if(a*y%(y-a)==0){
                an[cnt]=a*y/(y-a);
                bn[cnt++]=y;
            }
            printf("%d
    ",cnt);
          for(int i=0;i<cnt;i++)
            printf("1/%d = 1/%d + 1/%d
    ",a,an[i],bn[i]);        
        }
        return 0;
    }
  • 相关阅读:
    MongoDB安装 & 用户创建增删改查
    MongoDB介绍
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
  • 原文地址:https://www.cnblogs.com/-ifrush/p/10298259.html
Copyright © 2011-2022 走看看