JDOJ 1770 埃及分数

JDOJ 1770: 埃及分数

https://neooj.com/oldoj/problem.php?id=1770

Description

分子均为1的分数叫做埃及分数,因为古代埃及人在进行分数运算时,只使用分子是1的分数

现在输入一个真分数,将该分数分解为埃及分数

Input

输入一行,2个数代表真分数的分子分母,用‘/’隔开

Output

输出一行表示分解成埃及分数的解

Sample Input

8/11

Sample Output

8/11 = 1/2 + 1/5 + 1/55 + 1/110

应该还有一个提示,不过粘贴上来太麻烦,所以我就给省略了。

做这题很久了,刷上来来回忆一下我最0基础的时候(虽然现在也差不了多少。)

这题应该是一道模拟题,考验的就是思路转代码的能力(抱歉我现在的这个能力依然很差。

难点应该是特判?

好像还会卡格式

我就直接上代码了

扫描二维码关注公众号,回复: 6875208 查看本文章
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c;
    scanf("%d/%d",&a,&b); 
    printf("%d/%d = ",a,b);
    while(true)
    {
        if(b%a) 
            c=b/a+1; 
        else
        { 
            c=b/a; a=1;
        } 
        if(a==1)
        {
            printf("1/%d\n",c);
            break; 
        }
        else
            printf("1/%d + ",c);
 
        a=a*c-b; 
        b=b*c; 
        if(a==3) 
        { 
            printf("1/%d + 1/%d\n",b/2,b); 
            break;
        }
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/fusiwei/p/11251223.html