首页 > 专题系列 > Java解POJ > POJ 3086 Triangular Sums [解题报告] Java
2013
11-12

POJ 3086 Triangular Sums [解题报告] Java

Triangular Sums

问题描述 :

The nth Triangular number, T(n) = 1 + … + n, is the sum of the first n integers. It is the number of points in a triangular array with n points on side. For example T(4):

X
X X
X X X
X X X X

Write a program to compute the weighted sum of triangular numbers:

W(n) = SUM[k = 1…n; k * T(k + 1)]

输入:

The first line of input contains a single integer N, (1 ≤ N ≤ 1000) which is the number of datasets that follow.

Each dataset consists of a single line of input containing a single integer n, (1 ≤ n ≤300), which is the number of points on a side of the triangle.

输出:

For each dataset, output on a single line the dataset number (1 through N), a blank, the value of n for the dataset, a blank, and the weighted sum ,W(n), of triangular numbers for n.

样例输入:

4
3
4
5
10

样例输出:

1 3 45
2 4 105
3 5 210
4 10 2145

解题代码:

import java.io.BufferedInputStream;   
import java.util.Scanner;   
  
/**  
 * @author NC  
 * Poj3086  
 */  
public class Main {   
  
    public static void main(String[] args) {   
  
        Scanner scan = new Scanner(new BufferedInputStream(System.in));   
        int n = scan.nextInt();   
        for (int i = 1; i <= n; i++) {   
            int kk = scan.nextInt();   
            if (kk == 1) {   
                System.out.println(i + " 1 3");   
                continue;   
            }   
            int sum = 0;   
            int t = 1;   
            for (int j = 2; j <= kk + 1; j++) {   
                t += j;   
                sum += (j - 1) * t;   
            }   
            System.out.println(i + " " + kk + " " + sum);   
        }   
    }   
}

  1. 这道题目的核心一句话是:取还是不取。
    如果当前取,则index+1作为参数。如果当前不取,则任用index作为参数。