谁能解释计算这个等式的步骤? Java的

时间:2014-10-24 03:50:29

标签: java equation-solving

编写一个计算以下等式的程序。 1分之100+2分之99+3分之98+ 97/4 +五分之九十六...98分之3+ 2/99 +一百分之一

我不是要求解决方案。是的,这是一个家庭作业问题,但我不是来复制粘贴答案。我让我的教授解释这个问题或者我该如何处理这个问题?她说:“我不能告诉你任何事情。”

public static void main(String[] args){
    int i;

    for(i = 100; i >= 1; i--)
    {
        int result = i/j;
        j = j+1;
        System.out.println(result);
    }
}

4 个答案:

答案 0 :(得分:5)

在解决此类问题时,您可以尝试观察“趋势”或“模式”。

鉴于: 100/1+99/2+98/3+97/4+96/5...3/98+2/99+1/100

我们得出:分子/分母,我们称之为n除以d(n / d)

观察到的模式:

    每次循环后
  • n - 1
  • 每次循环后
  • d + 1

所以,如果你有100个数字,你需要循环100次。因此,使用循环100次的for循环似乎是合适的:

for(int n=0; n<100; n++) //A loop which loops 100 times from 0 - 100

要让n以100开头,我们将循环更改为让n从100开始而不是0:

for(int n=100; n>0; n--) //A loop which loops 100 times from 100 - 0

你确定了n,现在需要从1开始。

int d = 1; //declare outside the loop

把所有东西放在一起,你得到:

int d = 1;
double result = 0.0;
for (int n=100; n>0; x--)
{
    result += (double)n/d; //Cast either n or d to double, to prevent loss of precision
    d ++; //add 1 to d after every loop
}

答案 1 :(得分:2)

你走在正确的轨道上。你需要像你已经完成的那样循环,但是你需要将所有结果汇总起来。在您的示例中,您可以尝试:

result = result + i/j;

result += i/j;

请注意,结果声明需要在循环之外,否则您始终会初始化它 还要考虑除法(提示),你要划分整数......

答案 2 :(得分:0)

如果您希望结果采用相同的格式,请执行以下操作:

int j = 100;
double sum=0;
for (int i = 1; i <= 100; i++) {
sum += ((double) j / i);   // typecast as least one of i or j to double.
        System.out.print(j + "/" + i+"+");
  j--;
}

 // here print the sum

答案 3 :(得分:0)

你拥有的是series

定义一个系列的方法不止一种,但所有事情都是相同的,让一系列的索引增加而不是减少更直观。

在这种情况下,您可以使用0到99之间的i

enter image description here

在java中可以是:

double sum = 0;
for (int i = 0; i < 100; i++) {
    sum += (100 - i) / (double) (1 + i);
}