首页 > 解决方案 > 尝试使用 Java 中的数学公式计算分数

问题描述

我正在尝试使用公式计算 Java 中的分数。我无法将其转换为 Java 代码。

公式:= 3 ^ ( ( log2( 点数/3) ) + 1)

点=输入。

我目前有这段代码,但我没有得到我想要的结果:

int score = 3 ^ (int)(Math.pow(Math.log(12 / 3), 2) + 1);

谁能告诉我我做错了什么,并可能给我一个片段应该如何?结果应为 27,输入为 12。非常感谢您提前。

编辑:

Input 3 = 3
Input 6 = 9
Input 12 = 27
Input 24 = 81
Input 48 = 243
Input 96 = 729
Input 192 = 2187
etc.

标签: javamath

解决方案


公式为:

int score = (int) Math.pow(3, Math.log(points/3.0) / Math.log(2) + 1);
  • Java 中的 ^ 是按位 XOR 运算符,您需要使用它Math.pow来代替
  • log2(x) 是指“以 2 为底”的对数,它没有内置函数,但您可以使用 log(x)/log(2) 计算它

如果输出稍微偏离,您可能需要使用Math.round而不是强制转换(int)


推荐阅读