UVa 10976 分数拆分

来源:互联网 发布:星光图片素材软件 编辑:程序博客网 时间:2024/06/10 07:25
分析:这个题第一感觉枚举,枚举所有的可能试试,成功,便打印,可问题在于怎么求枚举的范围,这很重要。1/x
+1/y=1/k,又知x>=y,因此,k<=2/y,即y<=2*k;还可以知道y>=k+1。那这个题的枚举范围范围便大大减小了,暴力轻松
解决。

代码如下
#include <cstdio>
int main()
{
    int k,y,x;
    while (scanf("%d",&k)!=EOF)
    {
         for (y=k+1;y<=2*k;y++)
        {
            x=(k*y)/(y-k);
            if (((k*y)/(y-k))%x==0&&x>=y)  printf("1/%d=1/%d+1/%d\n\n",k,x,y);
        }
    }
    return 0;
}
1 0
原创粉丝点击