题解 | #将真分数分解为埃及分数#

将真分数分解为埃及分数

https://www.nowcoder.com/practice/e0480b2c6aa24bfba0935ffcca3ccb7b

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void huajian(int* a, int* b)
{
    if (*a == 1)
        return;
    for (int i = 2; i <= *a; i++)
    {
        if (*a % i == 0 && *b % i == 0)
        {
            *a = *a / i;
            *b /= i;
            huajian(a, b);
            return;
        }
    }

}
int main()
{
    char input[20] = { 0 };
    scanf("%s", input);
    int a, b;
    sscanf(input, "%d/%d", &a, &b);
    int res[20] = { 0 };
    int place = 0;
    huajian(&a, &b);
    for (int i = 2; i < a * b; i++)
    {
        if (a == 1)
        {
            res[place++] = b;
            break;
        }
        if (i * a > b)
        {
            res[place++] = i;
            a = i * a - b;
            b = b * i;
            huajian(&a, &b);
        }

    }
    printf("1/%d", res[0]);
    if (place > 1)
    {
        for (int i = 1; i < place; i++)
            printf("+1/%d", res[i]);
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 11:35
程序员小白条:话太多,没实力和学历,差不多回答回答就行了,身份地位不一样
点赞 评论 收藏
分享
酷酷我灵儿帅:这去不去和线不线下面说实话没啥关系
点赞 评论 收藏
分享
合不合适,我自己说了才算
码农索隆:hr:“真执着啊,来我公司当法人吧”
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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