HJ82 将真分数分解为埃及分数

题目描述

分子为1的分数称为埃及分数。现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数。如:8/11 = 1/2+1/5+1/55+1/110。
注:真分数指分子小于分母的分数,分子和分母有可能gcd不为1!
如有多个解,请输出任意一个。

输入描述:

输入一个真分数,String型

输出描述:

输出分解后的string

示例

输入:
8/11
2/4
输出:
1/2+1/5+1/55+1/110
1/3+1/6

解题思路

代码如下:

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
    string s;
    while(cin>>s)
    {
        int index=s.find('/');
        string z=s.substr(0,index);
        string m=s.substr(index+1);
        int n=stoi(z);
        string res;
        while(n--)
        {
            res+="1/"+m+"+";
        }
        res=res.substr(0,res.size()-1);
        cout<<res<<endl;
    }
    return 0;
}

 

posted @ 2022-08-05 22:48  An2i  阅读(52)  评论(0编辑  收藏  举报