Java 如何计算和系列1+;1/2…+;1/n
我很难非递归地找到这个级数的和 到目前为止,我已经:Java 如何计算和系列1+;1/2…+;1/n,java,recursion,Java,Recursion,我很难非递归地找到这个级数的和 到目前为止,我已经: public static double sum_nr(int n) { int result = 0; for (int i = 1; i<=n; i++) { result=result+1/(i+1); } return result; } public static void main(String[] args){ int n= 4; System.o
public static double sum_nr(int n) {
int result = 0;
for (int i = 1; i<=n; i++)
{
result=result+1/(i+1);
}
return result;
}
public static void main(String[] args){
int n= 4;
System.out.println("Calculation for sum_nr(n) " + n + " is "+ sum_nr(n));
}
public静态双和编号(int n){
int结果=0;
对于(int i=1;i整数除法将导致0个结果。对于变量结果应使用float
/double
而不是int
,整数除法将导致0个结果。对于变量结果整数除法应使用float
/double
而不是int
er除法将导致0个结果。对于变量结果整数除法将导致0个结果。对于变量结果你应该使用float
/double
而不是int
。我认为这不是因为我们选择正确的类型。您正在进行整数除法,而不是使用浮点类型
public static double sum_nr(int n) {
double result = 0;
for (double i = 0; i < n; i++)
{
result=result+1.0/(i+1);
}
return result;
}
public静态双和编号(int n){
双结果=0;
for(双i=0;i
我认为这是因为没有使用正确的类型。您使用的是整数除法,而不是浮点类型
public static double sum_nr(int n) {
double result = 0;
for (double i = 0; i < n; i++)
{
result=result+1.0/(i+1);
}
return result;
}
public静态双和编号(int n){
双结果=0;
for(双i=0;i
我认为这是因为没有使用正确的类型。您使用的是整数除法,而不是浮点类型
public static double sum_nr(int n) {
double result = 0;
for (double i = 0; i < n; i++)
{
result=result+1.0/(i+1);
}
return result;
}
public静态双和编号(int n){
双结果=0;
for(双i=0;i
我认为这是因为没有使用正确的类型。您使用的是整数除法,而不是浮点类型
public static double sum_nr(int n) {
double result = 0;
for (double i = 0; i < n; i++)
{
result=result+1.0/(i+1);
}
return result;
}
public静态双和编号(int n){
双结果=0;
for(双i=0;i
result=result+1/(i+1);将始终给出0,因为i是一个整数。将i值赋给一个浮点并使用该值
float result=0f;//将结果声明为float too或double for(int)
i=1;iresult=result+1/(i+1);当i是一个整数时,将始终给出0。将i值赋给一个浮点并使用它
float result=0f;//将结果声明为float too或double for(int)
i=1;iresult=result+1/(i+1);当i是一个整数时,将始终给出0。将i值赋给一个浮点并使用它
float result=0f;//将结果声明为float too或double for(int)
i=1;iresult=result+1/(i+1);当i是一个整数时,将始终给出0。将i值赋给一个浮点并使用它
float result=0f;//将结果声明为float too或double for(int)
i=1;i和其他人说的一样,但他们的答案并不完整
public static double sum_nr(int n) {
float result = 0;
for (int i = 1; i<=n; i++){
result=result+1/((float)i+1);
}
return result;
}
public静态双和编号(int n){
浮动结果=0;
因为(inti=1;i和其他人说的一样,但他们的答案并不完整
public static double sum_nr(int n) {
float result = 0;
for (int i = 1; i<=n; i++){
result=result+1/((float)i+1);
}
return result;
}
public静态双和编号(int n){
浮动结果=0;
因为(inti=1;i和其他人说的一样,但他们的答案并不完整
public static double sum_nr(int n) {
float result = 0;
for (int i = 1; i<=n; i++){
result=result+1/((float)i+1);
}
return result;
}
public静态双和编号(int n){
浮动结果=0;
因为(inti=1;i和其他人说的一样,但他们的答案并不完整
public static double sum_nr(int n) {
float result = 0;
for (int i = 1; i<=n; i++){
result=result+1/((float)i+1);
}
return result;
}
public静态双和编号(int n){
浮动结果=0;
对于(inti=1;i你所指的序列是,有一个封闭的近似形式
H(n) = ln(n) + gamma + 1/(2n) - 1/(12n^2)
其中gamma是Euler-Mascheroni常数。请参阅
在Java中,这里有一些代码可以正确计算并显示随着n
的增长近似值与实际值的差异。它将逐渐变小:
constant double EULER_MASCHERONI = 0.57721566490153286060651209008240243104215933593992;
public static double approximateHarmonicSummation(int n) {
return Math.log(n) + EULER_MASCHERONI + 0.5 * n - 1.0 / (12.0 * Math.pow(n, 2));
}
public static double sum_nr(int n) {
double result = 0;
for (double i = 0; i < n; i++) {
result += 1.0 / (i + 1);
}
return result;
}
public static void main(String[] args) {
double approx = 0.0;
double actual = 0.0;
for (int n = 0; n < 1000; n++) {
approx = approximateHarmonicSummation(n);
actual = sum_nr(n);
System.out.println("Calculation for approximation of sum_nr(n) " + n + " is "+ approx);
System.out.println("Calculation of sum_nr(n) " + n + " is "+ actual);
System.out.printlin("Difference = " + (actual - approx) + "\n");
}
}
constant double EULER_MASCHERONI=0.57721566490153286060651209008240243104215933992;
公共静态双近似谐波和(int n){
返回Math.log(n)+EULER_MASCHERONI+0.5*n-1.0/(12.0*Math.pow(n,2));
}
公共静态双和编号(整数n){
双结果=0;
for(双i=0;i
希望这会有所帮助。您所指的系列是。这有一个封闭的近似形式
H(n) = ln(n) + gamma + 1/(2n) - 1/(12n^2)
其中gamma是Euler-Mascheroni常数。请参阅
在Java中,这里有一些代码可以正确计算并显示随着n
的增长近似值与实际值的差异。它将逐渐变小:
constant double EULER_MASCHERONI = 0.57721566490153286060651209008240243104215933593992;
public static double approximateHarmonicSummation(int n) {
return Math.log(n) + EULER_MASCHERONI + 0.5 * n - 1.0 / (12.0 * Math.pow(n, 2));
}
public static double sum_nr(int n) {
double result = 0;
for (double i = 0; i < n; i++) {
result += 1.0 / (i + 1);
}
return result;
}
public static void main(String[] args) {
double approx = 0.0;
double actual = 0.0;
for (int n = 0; n < 1000; n++) {
approx = approximateHarmonicSummation(n);
actual = sum_nr(n);
System.out.println("Calculation for approximation of sum_nr(n) " + n + " is "+ approx);
System.out.println("Calculation of sum_nr(n) " + n + " is "+ actual);
System.out.printlin("Difference = " + (actual - approx) + "\n");
}
}
constant double EULER_MASCHERONI=0.57721566490153286060651209008240243104215933992;
公共静态双近似谐波和(int n){
返回Math.log(n)+EULER_MASCHERONI+0.5*n-1.0/(12.0*Math.pow(n,2));
}
公共静态双和编号(整数n){
双结果=0;
for(双i=0;i
希望这会有所帮助。您所指的系列是。这有一个封闭的近似形式
H(n) = ln(n) + gamma + 1/(2n) - 1/(12n^2)
伽马在哪里