埃及分数

亲爱的题解被简书吃掉了。。。下面只贴代码。。。

#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <cstdio>
#include <cstring>
using namespace std;
int a,b,maxd,flag;
int ans[15],v[15];
int gcd(int aa,int bb){
    return bb == 0 ? aa : gcd(bb,aa%bb);
}
void dfs(int d,int aa,int bb){
    if(d == maxd){
        if(bb%aa==0 && bb/aa > v[d-1]){
            v[d] = bb/aa;
            for(int i = 1; i <=maxd; i++) cout<<v[i]<<" ";
            cout<<endl;
            if(!flag || v[d] < ans[d])
                for(int i = 1; i <=maxd; i++) ans[i] = v[i];
            flag = 1;
            return;
        }
        return;
    }
    int s = bb/aa+1;
    s = max(s,v[d-1]+1);
    int t = max((maxd-d+1)*bb/aa,s);
    //printf("maxd %d d %d s %d t %d aa %d bb %d\n",maxd,d,s,t,aa,bb);
    for(int i = s;i <= t;i++){
        v[d] = i;
        printf("maxd %d d %d i %d\n",maxd,d,i);
        int aa2 = aa*i-bb;
        int bb2 = bb*i;
        int g = gcd(aa2,bb2);
        dfs(d+1,aa2/g,bb2/g);
    }
}
int main(){
    while(scanf("%d %d",&a,&b) == 2){
        flag = 0;
        for(maxd = 2;maxd <= 10;maxd++){
            memset(v, -1, sizeof(v));
            dfs(1,a,b);
            if(flag){
                printf("%d/%d=",a,b);
                for(int i=1;i<maxd;i++)
                    printf("1/%d+",ans[i]);
                printf("1/%d\n",ans[maxd]);
                break;
            }
        }
        if(!flag)
            printf("No solutuon\n");
    }
}

。。。我知道写得很垃圾。。。因为今天真的很困。。。而且亲爱的轮子哥又在跟我逼逼本科直接找工作不要刷那么多题。。。多做工程。。。问题系。。。我现在不仅做不动而且没人一起做阿。。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,172评论 25 708
  • 佛系,代表着一种不以物喜、不以己悲,以一切随缘为精神指导的生活态度。 佛系跑者”并不是不热爱跑步,而是更多了一份责...
    跑步老奶奶阅读 643评论 0 1
  • 세계적으로 유명한 드론 제조업체인 중국 DJI-Innovations(이하 DJI라 한다) 사는 최근 새...
    香菇ni阅读 243评论 2 1
  • 一、目标 工作:1 高质量完成大型项目。2 深入核心业务岗位。3 升职,有带人的能力。 家庭:1 学会烧10个家常...
    四月二日阅读 513评论 1 51
  • “一寸光阴一寸金,寸金难买寸光阴。”前两天真的是与时间来了一次赛跑,头一天休班把儿子和婆婆送回了老家,第二天正赶上...
    赵金芳Kevin阅读 348评论 4 0

友情链接更多精彩内容