将真分数分解为埃及分数

描述

分子为1的分数称为埃及分数。现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数

分解为埃及分数。如:8/11 = 1/2+1/5+1/55+1/110。

 

接口说明

 /*
 功能: 将分数分解为埃及分数序列
 输入参数:
     String pcRealFraction:真分数(格式“8/11”)
 返回值:
     String pcEgpytFraction:分解后的埃及分数序列(格式“1/2+1/5+1/55+1/100”)
 */

 public static String  ConvertRealFractToEgpytFract(String pcRealFraction)
 {
  return null;
 }

 

 

 

知识点 字符串
运行时间限制 10M
内存限制 128
输入

输入一个真分数,String型

输出

输出分解后的string

样例输入 8/11
样例输出 1/2+1/5+1/55+1/110
#include <iostream>
#include <stdio.h>
using namespace std;


void Output_Fraction(int a,int b)
{
    int c;
    while(true)
    {
        if(b%a!=0)
        {
            c=b/a+1;
            cout<<"1/"<<c<<"+";
            a=a*c-b;
            b=b*c;
            if(a==3)
            {
                cout<<"1/"<<b/2<<"+"<<"1/"<<b<<endl;
                break;
            }
        }
        else
        {
            c=b/a;
            a=1;
            cout<<a<<"/"<<c;
            break;
        }
    }
}


int main(void)
{
    int a;
    int b;
    scanf("%d/%d",&a,&b);
    Output_Fraction(a,b);
    return 0;
}

你可能感兴趣的:(C++,埃及分数,华为OJ,分数分解)