华为机试:将真分数分解为埃及分数

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;

bool isprime(int m) {
    for (int i = 2; i <= sqrt(m); i++) {
        if (m % i == 0) {

            return false;
        }
    }
    return true;
}

int main() {
    string str;
    while (cin >> str) {
        int i = str.find('/');
        string nume = str.substr(0, i);
        int n = stoi(nume);
        string deno = str.substr(i + 1, str.length() - i - 1);
        int m = stoi(deno);
        if (isprime(m)) {
            n *= 10;
            m *= 10;
        }
        string ans;
        while (n) {
            for (int i = n; i >= 1; i--) {
                if (m % i == 0) {
                    ans.push_back('1');
                    ans.push_back('/');
                    ans += to_string(m / i);
                    ans.push_back('+');
                    n -= i;
                    break;
                }
            }
        }
        ans.pop_back();
        cout << ans << endl;
        /*string ans;
        while (n--) {
            ans.push_back('1');
            ans += deno;
            ans.push_back('+');
        }
        ans.pop_back();
        cout << ans << endl;*/
        
    }
    return 0;
}

全部评论
马了慢慢看
点赞 回复 分享
发布于 2023-03-15 13:12 上海
多谢大佬分享
点赞 回复 分享
发布于 2023-03-15 13:12 山东

相关推荐

06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-21 13:38
8月实习会变多吗现在还没找到实习该怎么办...回复的hr好少
码农索隆:3-4月就要开始找,基本上6月份就发offer,7月初已经开始暑期实习了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务