• UVA 10976 Fractions Again?(枚举+数学)


    题目大意:

      就是说输入一个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 <= 1/y -> y<=2k,

      然后,由等式1/k = 1/x+1/y -> x = (y*k)/(y-k)

      这样一来,我们只需要在[k+1,2k]上枚举y的值,然后找到 (y*k)%(y-k)==0的所有x的值就好了。

    代码:

    # include<cstdio>
    # include<iostream>
    # include<algorithm>
    # include<functional>
    # include<cstring>
    # include<string>
    # include<cstdlib>
    # include<iomanip>
    # include<numeric>
    # include<cctype>
    # include<cmath>
    # include<ctime>
    # include<queue>
    # include<stack>
    # include<list>
    # include<set>
    # include<map>
    
    using namespace std;
    
    const double PI=4.0*atan(1.0);
    
    typedef long long LL;
    typedef unsigned long long ULL;
    
    # define inf 999999999
    # define MAX 10000
    
    int k;
    
    struct node
    {
        int x, y;
    }a[MAX];
    
    int main(void)
    {
        while ( cin>>k )
        {
            int num = 0;
            for ( int yy = k+1;yy <= 2*k;yy++ )
            {
                int fenzi = yy*k;
                int fenmu = yy-k;
                if ( fenzi%fenmu == 0 )
                {
                    int xx = fenzi/fenmu;
                    a[num].x = xx;
                    a[num++].y = yy;
                }
            }
            cout<<num<<endl;
            for ( int i = 0;i < num;i++ )
            {
                printf("1/%d = 1/%d + 1/%d
    ",k,a[i].x,a[i].y);
            }
        }
    
    
    
        return 0;
    }
    View Code
  • 相关阅读:
    [leetcode-648-Replace Words]
    [leetcode-647-Palindromic Substrings]
    [leetcode-646-Maximum Length of Pair Chain]
    [leetcode-645-Set Mismatch]
    [leetcode-459-Repeated Substring Pattern]
    [leetcode-636-Exclusive Time of Functions]
    [leetcode-644-Maximum Average Subarray II]
    iOS开发之使用XMPPFramework实现即时通信(三)
    Oracle 内置sql函数大全
    Oracle 中的sql函数以及分页
  • 原文地址:https://www.cnblogs.com/wikioibai/p/4391387.html
Copyright © 2020-2023  润新知