xiaoyan231 2021-10-15 07:27 采纳率: 80%
浏览 28
已结题

能用最最基础的方法做这道题吗,好多还没学

选做:埃及分数
成绩: 5 / 折扣: 0.8
题面描述:
魔法学院院长将家中11匹马分给3个儿子,老大1/2,老二1/4,老三1/6。3个儿子正在无奈之际,邻居把自己家的马牵来,老大二分之一,牵走了6匹; 老二四分之一,牵走了3匹;老三六分之一,牵走了2匹。一共11匹,分完后,邻居把自己的马牵了回去。即11/12=1/2+1/4+1/6。这种分子是1的分数,叫做埃及分数,因为古代埃及人在进行分数运算时,只使用分子是1的分数。

现输入一个真分数,请将该分数分解为埃及分数。如:8/11=1/2+1/5+1/55+1/110。
一种解决方法是:若真分数a/b中的分子a能整除分母b,则真分数经过化简直接就可以得到埃及分数,否则若真分数的分子不能整除分母,则可以从原来的分数中分解出一个分母c=b/a+1的埃及分数。

分解后剩下的部分形成一个新的a/b,即a=a×c-b,b=b×c。继续用这种方法将剩余部分反复分解,最后可得到结果。

frac.png

输入:
标准输入,两个整数,表示分子和分母。

输出:
标准输出,输出分解后的埃及分数(按分母递增的顺序)。

示例输入:
8 11

示例输出:
1/2+1/5+1/37+1/4070

提示:
请严格按题面描述的算法分解并按顺序输出。不同的分解算法可能得到的结果不同,但都是正确的,如8/11还可以分解为:1/2+1/5+1/55+1/110。

  • 写回答

2条回答 默认 最新

  • liwei_3_12 2021-10-15 09:15
    关注

    示例输入:
    11 12

    示例输出:
    1/2+1/4+1/6

    把11赋值给a,12赋值给b
    while( true )
    {
    if ( b%a == 0 )
    {
    直接输出 1/(b%a) 这个埃及分数
    bleak;
    }
    else
    {
    c = b/a+1;
    输出 1/c 这个埃及分数
    a = ac-b;
    b = b
    c;
    }
    }

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月26日
  • 专家已采纳回答 10月18日
  • 创建了问题 10月15日

悬赏问题

  • ¥15 请阅读下面代码,帮我修改下代码
  • ¥15 关于#microsoft#的问题:电脑启动后不显示桌面图标和窗口,除任务栏外无法操作任何东西
  • ¥15 如何输入百度,显示本地下载的html文件页面,地址栏还显示百度的地址
  • ¥15 通过kinect制作换装程序但是服装不贴合(标签-ar)
  • ¥20 matlab如何绘制三维瀑布图
  • ¥15 关于用abap来解决动态规划的问题,但是要求输出索引值,这个是难点
  • ¥15 在ISIS中什么是IP从地址
  • ¥15 压测时,并发量过高时,响应时间出现尖刺
  • ¥15 关于vmprotect3.8.4虚拟文件一项
  • ¥15 在不用IT调试的情况下怎样能连外网