中易网

分子为1的分数称为埃及分数,现输入一个真分数,使用循环方法将该分数分解为埃及分数用C语言解答

答案:3  悬赏:40  
解决时间 2021-02-10 18:10
分子为1的分数称为埃及分数,现输入一个真分数,使用循环方法将该分数分解为埃及分数用C语言解答
最佳答案
首先根据数学原理分析:
对于真分数a/b,只要存在这样一个数c,满足c<b,同时c是分母的因子,那么,就可以将a/b写作c/b+(a-c)/b的形式,其中c/b可以化简成埃及分数的形式。

这样再对(a-c)/b进行判断即可,递归下去,直到分子为1,得到最终结果。
代码如下:
int main()
{
    int a,b,c;
    scanf("%d%d",&a,&b);
    while(a>1)
    {
        for(c = a; c>1; c--)
            if(b%c==0) break;
        printf("1/%d ", b/c);
        a-=c;
    }
    if(a == 1) printf("1/%d",c);
}
全部回答
子为1 的分数称为埃及分数,现输入一个真分数,请将该分数分解为埃及分数。   如:8/11=1/2+1/5+1/55+1/110。   *问题分析与算法设计   若真分数的分子a能整除分母b,则真分数经过化简就可以得到埃及分数,若真分数的分子不能整除分母,则可以从原来的分数中分解出一个分母为b/a+1的埃及分数。用这种方法将剩余部分反复分解,最后可得到结果。   *程序说明与注释      #include   int main(void)   {   long int a,b,c;   while(true)   {   printf("Please enter a optional fraction(a/b):");   scanf("%ld/%ld",&a,&b);    printf("It can be decomposed to:");   while(true)   {   if(b%a)    c=b/a+1;    else{ c=b/a; a=1;}    if(a==1)   {   printf("1/%ld\n",c);   break;    }   else   printf("1/%ld + ",c);   a=a*c-b;    b=b*c;    if(a==3)    { printf("1/%ld + 1/%ld\n",b/2,b); break;}   }   }   return 0;   }   *运行结果   Please enter a optional fraction (a/b): 1/6   It can be decomposed to: 1/6   Please enter a optional fraction (a/b): 20/33   It can be decomposed to: 1/2+1/10+1/165   Please enter a optional fraction (a/b): 10/89   It can be decomposed to: 1/9+1/801   Please enter a optional fraction (a/b): 19/99   It can be decomposed to: 1/6+1/40+1/3960   Please enter a optional fraction (a/b): 8/87   It can be decomposed to: 1/11+1/957   ……(按ctrl-c退出)
#includeint main(void){ long int a,b,c; while(true) { printf("please enter a optional fraction(a/b):"); scanf("%ld/%ld",&a,&b); printf("it can be decomposed to:"); while(true) { if(b%a) c=b/a+1; else { c=b/a; a=1; } if(a==1) { printf("1/%ld\n",c); break; } else { printf("1/%ld + ",c); a=a*c-b; b=b*c; } if(a==3) { printf("1/%ld + 1/%ld\n",b/2,b); break;} } } } return 0;}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
沪金所推出的理财产品该怎么购买?
蓝精灵母婴用品店廉江特许连锁店在哪里啊,我
EXID的成员是?
c语言中如何不用库函数讲两个中间有空格的字
楚辞是在怎样的背景下产生的?
何陈副食超市怎么去啊,有知道地址的么
具体 说一下软件测试技术需要学那些东西?
写校园的喷泉 注:没有音乐
龙泉宝剑厂家直销怎么去啊,有知道地址的么
杨井村农贸蔬菜市场在哪里啊,我有事要去这个
爸爸今天封阳台修改病句
黄宝石只能蹲兵蚁星和肝蚁后能弄到吗
准备去雅安汉源工作了,不知道选汉一中还是汉
伊鑫源羊肉泡馍馆地址在什么地方,想过去办事
东风风行菱智有油气混合的吗?
推荐资讯
本人想在自家的楼房顶面围池种植果树,不知楼
办理农药登记证机构
广州有哪些中专招生?想去读春季班
笔记本玩游戏好卡,和电源适配器有关系吗,我
中国联合网络通信有限公司庐山分公司我想知道
小明对小红说:“你把借的图书还给图书管理员
爱普生7880c喷头加密和没加密的,有什么区别?
研究生去考公务员的还有必要吗?
封窗子的胶条有异味怎么办?
泊美的倍水润系列适合混合偏干性的肤质使用吗
电苑小区在哪里啊,我有事要去这个地方
苹果5s怎么隐藏短信
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?