【问题标题】:Java program to sum base^exponent of n numbers while next base and exponent is (n-1)Java程序对n个数字的底数^指数求和,而下一个底数和指数是(n-1)
【发布时间】:2013-10-29 02:10:53
【问题描述】:

我正在尝试用 java 编写一个程序,它显示 n 个数字及其指数之和的结果,而样本中的下一个数字和指数是 (n-1),直到它变为 0。我希望我在解释自己。一个例子:

如果我向用户询问数字 3,程序必须这样做: 3^3 + 2^2 + 1^1 = 32

我需要使用循环,所以我不能使用任何类型的函数,即使它更有效。

这是我目前所拥有的:

public static void main(String[] args) 
{
    int n,i,j,s=0,exp;

    Scanner r = new Scanner (System.in);

    System.out.println("Value of n: ");
    n = r.nextInt();

    for(i=1;i<=n;i++)
    {
        s = 0;

        for(j=1;j<=i;j++)
        {
            exp = n * n;
            s = s + exp;
        }
    }

    System.out.println("Total: "+s);
}

关于如何使它工作的任何提示?我无法理解这一点。

【问题讨论】:

  • 什么不起作用?您希望打印什么,而不打印什么?
  • 你应该退后一步,逐行复习你所写的内容。你不需要两个循环,问问自己exp = n * n 做了什么。
  • 正如@iluxa 提到的,请更新问题并添加您必须帮助我们帮助您的问题;)

标签: java for-loop cycle exponent


【解决方案1】:

你的 for 循环中的逻辑不正确。

下面是一个让它工作的例子;

外层循环中的变量i是决定处理哪些int值,比如1,2,3 if n=3

内部循环是处理给定 i 的 pow 表达式,例如您提到的 1^1、2^2 和 3^3。

        for(i=1;i<=n;i++)
        {
            exp = 1;
            for(j=1;j<=i;j++)
            {
                exp *=i;
            }
           s+=exp; 
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 2014-09-29
    • 1970-01-01
    相关资源
    最近更新 更多