鉴于好多题解分享的代码运行不成功,我更新一个最新的
import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息/**    斐波那契分解因数,a/b=1/(c+1)+(a-d)/(b(c+1)),其中c=b/a,d=b%a */public class Main {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        // 注意 hasNext 和 hasNextLine 的区别        while (in.hasNext()) { // 注意 while 处理多个 case            // int a = in.nextInt();            // int b = in.nextInt();            // System.out.println(a + b);            String str = in.nextLine();            String[] numStr = str.split("/");            // 分子            int sonNum = Integer.parseInt(numStr[0]);            // 分母            int monNum = Integer.parseInt(numStr[1]);            // 初始化一个字符串            String result = "";            // 判断分子大于分母或者分子小于1或者分母小于2            if(sonNum>monNum||sonNum<1||monNum<2){                // 结束                break;            }            // 计算真分数为埃及分数            while (sonNum!=1) {                                // 如果分子分母,能被整除                if(monNum%sonNum==0){                    // 分母就是 monNum=monNum/sonNum                    monNum = monNum/sonNum;                    // 分子 sonNum=1                    sonNum=1;                    // 跳过循环                    continue;                }                // 判断monNum%(sonNum-1)==0,此判断是当5/8 = 4/8 + 1/8===>1/2+1/8,                // 上面的等式是不满足斐波那契的                if(monNum%(sonNum-1)==0){                    System.out.print("1/"+monNum/(sonNum-1)+"+");                    // 将分子更新为1                    sonNum=1;                }else{                    // 此判断是满足斐波那契的                    // 定义变量c                    int c;                    // 更新c的值                    c = monNum/sonNum + 1;                    // 更新分子的值                    sonNum = sonNum-monNum%sonNum;                    // 更新分母的值                    monNum = monNum*c;                    System.out.print("1/"+c+"+");                }                             }            System.out.println("1/"+monNum);        }    }}
点赞 0
评论 1
全部评论

相关推荐

10-31 20:07
门头沟学院 Java
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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