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; }