java – C中的埃及分数

前端之家收集整理的这篇文章主要介绍了java – C中的埃及分数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
古埃及人只使用1 / n形式的分数,因此任何其他分数必须表示为这些单位分数的总和,而且,所有单位分数都不同!

在C或java中使任何分数成为埃及分数(越少越好)的好方法是什么,可以使用什么算法,分支和绑定,a *?

例如:

3/4 = 1/2 + 1/4

6/7 = 1/2 + 1/3 + 1/42

解决方法

一种方法是贪心算法.给定分数f,找到小于或等于f的最大埃及分数1 / n(即,n = ceil(1 / f)).然后重复余数f – 1 / n,直到f == 0.

所以对于3/4,你要计算:

> n = ceil(4/3)= 2;余数= 3/4 – 1/2 = 1/4
> n = ceil(4)= 4;余数= 1/4 – 1/4 = 0
> 3/4 = 1/2 1/4

对于6/7:

> n = ceil(7/6)= 2;余数= 6/7 – 1/2 = 5/14> n = ceil(14/5)= 3;余数= 5/14 – 1/3 = 1/42> n = ceil(42)= 42;余数= 1/42 – 1/42 = 0> 6/7 = 1/2 1/3 1/42

猜你在找的Java相关文章