Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 先求N个五边形数_Java_Methods_For Loop - Fatal编程技术网

Java 先求N个五边形数

Java 先求N个五边形数,java,methods,for-loop,Java,Methods,For Loop,我必须从1-100中找到第一个N[五边形数字][1],每行显示10个。我还必须使用getPentagonalNumber(intn)方法;这就是它存在的原因 这是到目前为止我的代码 package chapter_5; public class Five_One { public static void main(String[] args) { int n = 0; int numPerLine = 10; for ( n = 0;

我必须从1-100中找到第一个
N[五边形数字][1]
,每行显示10个。我还必须使用
getPentagonalNumber(intn)
方法;这就是它存在的原因

这是到目前为止我的代码

package chapter_5;

public class Five_One {

    public static void main(String[] args) {
        int n = 0;
        int numPerLine = 10;
        for ( n = 0;  n < 11;  n ++)           
    }

    public static int getPentagonalNumber(int n) {
        int formula = n * (3 * n - 1) / 2;
        while ( formula < )
    }
}
包装第五章;
公共五一级{
公共静态void main(字符串[]args){
int n=0;
int-numPerLine=10;
对于(n=0;n<11;n++)
}
公共静态int getPentagonalNumber(int n){
int公式=n*(3*n-1)/2;
while(公式<)
}
}

请注意,您只执行一次公式,然后将其递增,直到得到101。所以你基本上做到了:100*(3*100-1)/2=14950


考虑让getPentagonalNumber返回一个值,然后调用它x次,从1开始递增值,直到得到一个大于100的值,或者直到根据您的要求执行了100次。

它不应该是
返回公式吗
和not
返回n因为我假设您正在尝试返回计算结果?

这还有很长的路要走。让我们在这里用更好的方法来分解它

让我们创建一个返回一组五边形数的方法(我们将使用数组)。这允许我们在以后使用该方法,如果可能还有额外的积分

我们的签名如下:

class Jason {

    public static void main(String[] args) {
        // don't mix the calc routine and printing...
        int[] pents = getPentagonals(100); // calcs and stores the first 100 values

        final int numPerLine = 10;
        for(int i = 0; i < pents.length; i++) {
            System.out.print(pents[i]);
            System.out.print(" ");
            if(i % numPerLine == numPerLine - 1) System.out.println("");
        }
    }

    static int[] getPentagonals(int n) {
        int[] pents = new int[n];
        // calculate pents
        for(int i = 0; i < pents.length; i++) {
            // calculate the ith pentagonal here (assuming the 0th is first)
            // store it in pent[i]
        }
        return pents;
    }

}
class{
公共静态void main(字符串[]args){
//不要将计算例程与打印混合使用。。。
int[]pents=getPentagonals(100);//计算并存储前100个值
最终整数纽佩林=10;
对于(int i=0;i
我认为我构造它的方法是让
获取五边形数(int n)
返回
n
第个五边形数——一次只计算一个。这使得它易于理解和测试。担心在
main
函数中编译它们的列表,该函数可以调用
getPentagonalNumber
函数


您可能希望让主函数将结果存储到
列表中。当列表
.size()==10
时,调用
打印结果(结果列表)
(您将使用
main
中当前的一些代码编写)和
.clear()
列表。特别是在开始时,保持功能小而职责明确分开将有助于跟踪代码的执行情况。

你的>>具体是什么mmm我真的认为我不应该帮助你。。。。道德的东西。但我会帮你一把,这样你就可以编辑这段代码了。首先,你必须打印号码,这样你会在某个地方丢失一个println。你还需要一个重复的结构,像一个用于内部de的,所以每行打印10个数字。使用print(数字+“”),当计数器达到10时,使用print(\n),您必须为1到n之间的每个值计算公式。为此,您必须在while中计算公式。我可以给你的第一个提示是:不要修改参数的值,换句话说,避免使用其他变量进行增量。通常在循环中使用
i
变量。
i%numPerLine=numPerLine-1
缺少
=
@xanatos漂亮的捕获。谢天谢地,ide捕捉到了这一点,而编译器在那里失败了。另外,你有足够的代表,你可以编辑它:-)如果我触摸你的代码,我需要手套:-)我是
总是使用{}
部分的成员,
在}和}之间没有空行,之后也没有空行{
支持小组。实际上是另一个世界:-)它仍然是+1,因为它很好,格式正确,带有小写变量:-)@xanatos足够公平。我的阵营是,如果它足够短,可以放在一行上,那么这样做是可以接受的。我不太喜欢空行,除非它们在类声明之前或之后。但是这只是风格的问题,而不是它是否会编译的问题。:-(呵呵,这很押韵。太棒了。)谢谢你的帮助,尽管我觉得自己有点迟钝,因为我仍然被难住了!我遇到的问题是,当我尝试n=0时,不知何故为n添加一个数值;然后递增1以执行公式n*(3*n-1)/2直到n=10;我不能,因为在公共静态int getPentagonalNumber(int n)n已经被赋值了,我希望我甚至有意义