查找没有数组的行中的数字总和

时间:2018-04-12 20:38:17

标签: java

我写了这个程序打印一个显示x的幂的表,现在我必须修改它,以便它打印每行的总和,在每行之后,我不知道从哪里开始。我想把数字放到一个数组中并添加它们,但这看起来太复杂了。

public class table {
    public static void main(String[] args)
    {
    final int NMAX = 5;
    final double XMAX = 10;

    for(int n = 1; n <= NMAX; n++) 
    {
        System.out.printf("%10d", n);
    }
    System.out.println();
    for(int n = 1; n <= NMAX; n++)
    {
        System.out.printf("%10s", "x ");
    }
    System.out.println();
    for(double x = 1; x <= XMAX; x++)
    {
        for (int n = 1; n <= NMAX; n++)
        {
            System.out.printf("%10.0f", Math.pow(x, n));
        }
    System.out.println();
    }
}

}

2 个答案:

答案 0 :(得分:3)

哦,我觉得我理解你。这是代码我做了一些改变但没有太复杂的理解。如果您有一些问题可以随意提问。

    final int NMAX = 6;
    final double XMAX = 10;

    for(int n = 1; n <= NMAX; n++)
    {
        System.out.printf("%10d", n);
    }
    System.out.println();
    for(int n = 1; n <= NMAX; n++)
    {
        System.out.printf("%10s", "x ");
    }
    System.out.println();
    int counter = 0;
    for(double x = 1; x <= XMAX; x++)
    {
        for (int n = 1; n <= NMAX; n++)
        {
            if(n == 6){
                System.out.printf("%10d",counter);
                counter = 0;
            }else{
                System.out.printf("%10.0f", Math.pow(x, n));
                counter += Math.pow(x, n);

            }
        }
        System.out.println();
    }

答案 1 :(得分:2)

您可以实现您想要的更改程序的最后一部分(如果NMAX始终是列数):

double pow, sum;
for(double x = 1; x <= XMAX; x++)
    {
        sum = 0;
        for (int n = 1; n < NMAX; n++)
        {
            sum += (pow = Math.pow(x, n));
            System.out.printf("%10.0f", pow);
        }
        System.out.printf("%10.0f", sum);
        System.out.println();
    }

此行可能令人困惑:

sum += (pow = Math.pow(x, n));

正如here所解释的,赋值运算符返回指定的值。在这种情况下,我们会将Math.pow(x, n)的结果分配给变量pow,然后将相同的值添加到变量sum

这样您只需拨打Math.pow一次,因为您将值保存在变量中以便稍后打印。

这样做可以让您将变量NMAX更改为任何值,而无需更改程序中的任何其他内容。