Java 中的蛋糕数2025年3月17日 | 阅读 7 分钟 在本节中,我们将学习如何在 Java 中找到蛋糕数。蛋糕数 CKn 表示用 n 个平面切割将蛋糕分割成最多份数。饼干数的三个维度版本就是蛋糕数。 一般来说, CKn = (n3 + 5 *n + 6) / 6 其中 n >= 0 因此, 对于 n = 0, CK0 = (03 + 5 * 0 + 6) / 6 = (6) / 6 = 6 / 6 = 1 对于 n = 1, CK1 = (13 + 5 * 1 + 6) / 6 = (1 + 5 + 6) / 6 = 12 / 6 = 2 对于 n = 2, CK2 = (23 + 5 * 2 + 6) / 6 = (8 + 10 + 6) / 6 = 24 / 6 = 4 对于 n = 3, CK3 = (33 + 5 * 3 + 6) / 6 = (27 + 15 + 6) / 6 = 48 / 6 = 8 对于 n = 4, CK4 = (43 + 5 * 4 + 6) / 6 = (64 + 20 + 6) / 6 = 90 / 6 = 15 对于 a = 5, CK5 = (53 + 5 * 5 + 6) / 6 = (125 + 25 + 6) / 6 = 156 / 6 = 26 实施让我们看看如何实现上述数学公式。请注意以下示例。 文件名: CakeNumberExample1.java 输出 The first 30 cake numbers are: 1 2 4 8 15 26 42 64 93 130 176 232 299 378 470 576 697 834 988 1160 1351 1562 1794 2048 2325 2626 2952 3304 3683 4090 使用递归蛋糕数也可以使用递归找到。但是,要通过递归找到蛋糕数,我们必须知道它的递归公式。 CK0 = 1,当 n = 0 时 CK1 = 2,当 n = 1 时 CKn = n + 1C3 + n + 1,当 n >= 2 时 因此, 对于 n = 2 ![]() 实施让我们看看如何实现上述数学公式。请注意以下示例。 文件名: CakeNumberExample2.java 输出 The first 30 cake numbers are: 1 2 4 8 15 26 42 64 93 130 176 232 299 378 470 576 697 834 988 1160 1351 1562 1794 2048 2325 2626 2952 3304 3683 4090 使用迭代蛋糕数也可以通过迭代找到。我们将使用循环借助二维数组来找到蛋糕数。请注意以下程序。 文件名: CakeNumberExample3.java 输出 The first 30 cake numbers are: 1 2 4 8 15 26 42 64 93 130 176 232 299 378 470 576 697 834 988 1160 1351 1562 1794 2048 2325 2626 2952 3304 3683 4090 另一种方法除了上述讨论的方法外,还有一种使用组合计算蛋糕数的方法。请注意以下数学陈述。 CK0 = 1,当 CK1 = 2,当 CK2 = 4,当 CKn = nC3 + nC2 + nC1 + nC0,当 n >= 3 时 因此, 对于 n = 3, ![]() 实施让我们在下面的代码中看看上述公式的递归和迭代实现,以找到蛋糕数。 文件名: CakeNumberExample4.java 输出 The first 30 cake numbers are: 1 2 4 8 15 26 42 64 93 130 176 232 299 378 470 576 697 834 988 1160 1351 1562 1794 2048 2325 2626 2952 3304 3683 4090 The first 30 cake numbers are: 1 2 4 8 15 26 42 64 93 130 176 232 299 378 470 576 697 834 988 1160 1351 1562 1794 2048 2325 2626 2952 3304 3683 4090 下一主题Java 中的时间比较 |
? LINQ 称为 Language Integrated Query,它出现在 .NET 3.5 和 Visual Studio 2008 中。LINQ 的优点是它能够让 .NET 语言(如 C#、VB.NET 等)创建查询以从数据源中检索数据。对于...
阅读 6 分钟
在这篇关于 Java 编程语言的文章中,我们将详细解释“UTF”一词及其转换。我们将学习编程语言的不同形式、它们的用途以及它们在编码时的性质。什么是 Unicode?Unicode...
阅读 4 分钟
Java 是一种通用且强大的编程语言,以其健壮性和灵活性而闻名。使 Java 成为开发者热门选择的众多特性之一是动态初始化。动态初始化允许您在运行时初始化变量和对象,为您提供更大的...
阅读9分钟
java.text 中的内置方法之一是 getMaximumIntegerDigits()。Java 的 DecimalFormat 类用于确定数字整数部分可以包含的最大位数。数字中出现在小数点 (.) 之前的部分称为...
阅读 2 分钟
HashMap是Java集合框架中的高性能数据结构之一。它为插入和检索提供了恒定的时间性能。有两个因素会影响HashMap的性能。初始容量负载因子我们在选择这两个因素时必须非常小心...
阅读 3 分钟
?任何 Java 对象的 toString() 函数都返回该对象的字符串表示。默认情况下,此函数会生成一个包含对象类名、"@" 符号以及其十六进制哈希码的字符串。但是,在某些情况下,您可能希望... ...
阅读 3 分钟
?在本节中,我们将创建一个 Java 程序,以根据日期获取星期几的名称。在处理 Java 中的日期和时间时,会用到以下类。Calendar 类:该类属于 java.util 包。它继承了 Object 类,并且...
阅读 4 分钟
在数组中查找两个指定元素之间的最小距离是计算机科学和数据分析中的一个常见问题。此任务涉及计算给定数组中两个不同元素的第一次出现之间的最小距离。此类问题非常重要...
阅读 10 分钟
Java 中有 23 种设计模式,它们为应用程序设计中常见的问题提供了明确的解决方案。它代表了应用程序及其流程的详细描述。它是许多……中可用的问题解决方案。
阅读9分钟
将 Java 中的 double 和 float 值四舍五入到小数点后两位,对于处理货币值、精度测量或任何其他需要精确浮点数表示的领域的应用程序来说,是一项常见要求。Java 提供了多种方法和类来实现此目的。这里,……
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India