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

将真分数分解为埃及分数

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

贴一个C#版本,从java题解改动的
/**
数学家斐波那契提出的一种求解***分数的贪心算法,准确的算法表述应该是这样的:
设某个真分数的分子为a,分母为b;
把c=(b/a+1)作为分解式中第一个***分数的分母;
将a-b%a作为新的a;
将b*c作为新的b;
如果a等于1,则最后一个***分数为1/b,算法结束;
如果a大于1但是a能整除b,则最后一个***分数为1/(b/a),算法结束;
否则重复上面的步骤。
**/
using System;

namespace HJ82{
    class Solution{
        public static void Main(){
            var input = string.Empty;
            while((input = Console.ReadLine()) != null){
                var res = "";
                var arr = input.Split("/");
                var pre = "";
                long a = Convert.ToInt64(arr[0]);
                long b = Convert.ToInt64(arr[1]);
                while(true){
                    long c = b/a+1;
                    res += "1/";
                    res += c;
                    a = a - b % a;
                    b = b * c;
                    res += "+";
                    if (a == 1){
                        res += "1/";
                        res += b;
                        break;
                    }else if (a > 1 && b % a == 0){
                        res += "1/";
                        res += b/a;
                        break;
                    }
                }
                Console.WriteLine(res);
            }
        } 
    }
}


全部评论

相关推荐

04-30 21:35
已编辑
长安大学 C++
晓沐咕咕咕:评论区没被女朋友好好对待过的计小将可真多。觉得可惜可以理解,毕竟一线大厂sp。但是骂楼主糊涂的大可不必,说什么会被社会毒打更是丢人。女朋友体制内生活有保障,读研女朋友还供着,都准备订婚了人家两情相悦,二线本地以后两口子日子美滋滋,哪轮到你一个一线城市房子都买不起的996清高计小将在这说人家傻😅
点赞 评论 收藏
分享
练习JAVA时长两年半:qps 30000
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务