如何打印一组数字以及从1到列表中每个数字的平方和?

时间:2018-10-29 05:20:00

标签: java

如何用两种不同的方法编码此问题?我知道这可以在一个循环和一个嵌套循环中完成,但是需要以这种方式完成。我知道这全都错了,但是我需要帮助来理解逻辑。

    public static int numloop(int n){
        int nd = 0;
        for(n = 5; n <= 49; n += 2){
            nd = ndiv(n);
        }
      return nd;
    }
    public static int ndiv(int numb){    
        int sumsq = 0; 
        for( int x = 1; x <= numb; x++ ){
            sumsq += x * x;

        }  
     return sumsq;   
    }
     public static void main(String[]args){

       System.out.println("NUMBER\t" + "SUMSQ");
       System.out.println(n + nd);
    }

输出应如下所示:

编号||平方和

5 || 55

7 || 140

9 || 285

2 个答案:

答案 0 :(得分:0)

@Tony非常简单。如果您希望使用2种方法完成此操作,则只需将其拆分如下:

  • 一种仅将输入数字作为参数并进行计算的方法 平方和(在另一种方法中找到的平方)
  • 另一种计算数字平方的方法。

这是程序流程的概述:

  1. 接受数字
  2. 将数字传递到上述第一种方法中
  3. 在第一种方法中,从1到数字循环。为每个Square()值调用i方法。同时计算总和;
  4. 所有迭代完成后打印总和。.

我在下面附加了代码及其输出:

代码:

import java.io.*;

class Main {

  public static void main(String[] args)throws IOException {
    InputStreamReader ip = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(ip);
    int c = 1;
    do {
      System.out.println("Enter a number: ");
      int n = Integer.parseInt(br.readLine());
      squaresum(n);
      System.out.println("\nPress 1 to continue, 0 to stop..");
      c = Integer.parseInt(br.readLine());
    }while(c == 1);
    System.out.println("Stopped.");
  }

  public static void squaresum(int num) {
    int n = 0;
    for(int i = 1; i <= num; i++)
      n += square(i);
    System.out.println("Sum is: " + n);
  }

  public static int square(int n) {
    return (n*n);
  }

}

输出:

  

输入数字:

     

5

     

总和是:55

     

按1继续,按0停止。

     

1

     

输入数字:

     

9

     

总和是:285

     

按1继续,按0停止。

     

0

     

已停止。

答案 1 :(得分:0)

Tony-无法完全按照您想要的代码进行计算,因此我选择了使其灵活一些。限制它只执行您想要的操作应该很容易。

public class SumSquare {

    public static int numloop(int start, int end, int increment){
        int nd = 0;
        for(int i = start; i <= end; i += increment){
            nd = ndiv(i);
            System.out.println(i + " || " + nd);
        }
      return nd;
    }
    public static int ndiv(int numb){    
        int sumsq = 0; 
        for( int x = 1; x <= numb; x++ ){
            sumsq += x * x;

        }  
     return sumsq;   
    }
     public static void main(String[]args){
       System.out.println("Number" + " || " + "Sum of square");
       numloop(5, 49, 2);
    }    
}

输出:

run:
Number || Sum of square
5 || 55
7 || 140
9 || 285
11 || 506
13 || 819
15 || 1240
17 || 1785
19 || 2470
21 || 3311
23 || 4324
25 || 5525
27 || 6930
29 || 8555
31 || 10416
33 || 12529
35 || 14910
37 || 17575
39 || 20540
41 || 23821
43 || 27434
45 || 31395
47 || 35720
49 || 40425
BUILD SUCCESSFUL (total time: 0 seconds)