java – C中的埃及分数
发布时间:2020-12-15 02:48:59 所属栏目:Java 来源:网络整理
导读:古埃及人只使用1 / n形式的分数,因此任何其他分数必须表示为这些单位分数的总和,而且,所有单位分数都不同! 在C或java中使任何分数成为埃及分数(越少越好)的好方法是什么,可以使用什么算法,分支和绑定,a *? 例如: 3/4 = 1/2 + 1/46/7 = 1/2 + 1/3 + 1/42
古埃及人只使用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 对于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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |