题解 | #将真分数分解为埃及分数#
将真分数分解为埃及分数
https://www.nowcoder.com/practice/e0480b2c6aa24bfba0935ffcca3ccb7b
主要在于:
1.理清求解埃及分数的方法;
2.在code前,还是要想清楚步骤,一边写一边想,容易写乱(当然是针对我这种小白哈哈哈)
import java.util.*; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while (scan.hasNextLine()) { String input = scan.nextLine(); String[] inputs = input.split("/"); long numerator = Long.parseLong(inputs[0]); long denominator = Long.parseLong(inputs[1]); List<Long> list = new ArrayList<>(); //循环判断,直至分子为1 while (numerator != 1) { //判断字母能否被分子整除 if (denominator % numerator == 0) { list.add(denominator / numerator); break; } else { long nextDenominator = denominator / numerator + 1; list.add(nextDenominator); numerator = numerator * nextDenominator - denominator; denominator = denominator * nextDenominator; if (numerator == 1) list.add(denominator); } } //输出 for(int i=0;i<list.size();i++){ if(i<list.size()-1){ System.out.print("1/"+list.get(i)+"+"); }else{ System.out.print("1/"+list.get(i)); } } System.out.println(); } } }