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

将真分数分解为埃及分数

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

//只说输出成埃及分数,没说一定得不一样
#include <stdio.h>
#include <string.h>
#include <math.h>
int main() {
    int a, b;
    char str[10];
    while (scanf("%s", str) != EOF ) {
        int len = strlen(str);
        int fs[2] = {0};
        int x = 0, z = 0;
        for (int i = len-1; i >= 0; i--) {
            if (str[i] == '/') {
                x++;
                z = 0;
                continue;
            }
            fs[x] = (str[i] - '0')* pow(10, z++) + fs[x];
            // printf("%d\n",fs[0]);
            // printf("%d\n",fs[1]);
        }
        //printf("%d/%d\n",fs[0],fs[1]);
            for (int i = 0; i < fs[1] - 1; i++) {
                printf("1/%d+", fs[0]);
            }
            printf("1/%d\n", fs[0]);
        }

    }




    /*运算超时
    #include <math.h>
    #include <stdio.h>
    #include <string.h>
    int t = 2;
    float y = 0.5;


    void aj(float a) {
        if ((a - y) > 0) {
            a = a - y;
            //printf("%f\n",y);
            printf("1/%d+", t);
            t++;
            y = pow(t, -1);
            aj(a);
        } else if ((a - y) < 0) {
            t++;
            y = pow(t, -1);
            aj(a);
        } else if ((a - y) == 0) {
            printf("1/%d\n", t);
            t = 2;
            y = 0.5;
            return;
        }


    }

    int main() {
        char str[10];
        while (scanf("%s", str) != EOF ) {
            int len = strlen(str);
            float fs[2] = {0};
            int x = 0, z = 0;
            for (int i = 0; i < len; i++) {
                if (str[i] == '/') {
                    x++;
                    z = 0;
                    continue;
                }
                fs[x] = (str[i] - '0') + fs[x] * pow(10, z++);
                // printf("%d\n",fs[0]);
                // printf("%d\n",fs[1]);
            }
            //printf("%d/%d\n",fs[0],fs[1]);
            float num = fs[0] / fs[1];

            aj(num);


        }


        return 0;
    }**/

全部评论

相关推荐

2025-12-15 14:16
门头沟学院 Java
回家当保安:发offer的时候会背调学信网,最好不要这样。 “27届 ”和“28届以下 ”公司招聘的预期是不一样的。
实习简历求拷打
点赞 评论 收藏
分享
昨天 07:53
门头沟学院 C++
心愿便利贴:工作了以后回头再看待这个问题,从客观的视角来讲是因为每个人对自己的要求不同,学习好的人对自己的要求很高,所以觉得考不好就天塌了,认为自己学习好并且值得一份好工作的人也是一样,找不到符合自己预期的工作肯定也会觉得是侮辱,牛客上有很多名校大学生,肯定会存在这种好学生心态啊,“做题区”从来都不是贬义词,这是大部分普通人赖以生存的路径,这个有什么好嘲讽的,有“好学生心态”没有错,但是不要给自己太大的压力了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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