牛客0042 |ニコシュの定理

トピック情報

ニコッシュの定理を確認します。つまり、整数mの任意の立方体は、m個の連続する奇数の合計として記述できます。

例えば:

1 ^ 3 = 1

2 ^ 3 = 3 + 5

3 ^ 3 = 7 + 9 + 11

4 ^ 3 = 13 + 15 + 17 + 19

正の整数m(m≤100)を入力し、mの立方体をm個の連続する奇数の合計として書き込んで出力します。

この質問には、複数の入力データのセットが含まれています。

回答

各nのn³値と分解された合計を書き留めます。いくつかのルールを見つけることができます。

つまり、各数n³を分解した後の連続奇数和の真ん中の1ビット(n²)または2ビット(n²-1、n²+ 1)について、これに基づいて、nが5の場合を推測します。

結果値5が等しいと仮定し、最後に式を導出します。29のn ^ 2 + 4を5に接続して、式n ^ + n-1を導出し、の各桁から2を減算します。順番。

コーディング

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Scratch {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String input ;
		while ((input=br.readLine()) != null) {
			int num = Integer.parseInt(input);
			
			// 确定最后一位数字大小
			int end = num * num + num - 1;
			
			// 创建数组,并将最后一位值确定
			int[] arr = new int[num];
			arr[num-1] = end;
			
			// 确定数组中前面每一位的数字大小
			for (int i=1; num-i>0; i++) {
				arr[num-i-1] = num*num+num-1-2*i;
			}
			
			// 遍历数组输出
			for (int i=0; i<arr.length; i++) {
				if (i < arr.length-1) {
					System.out.print(arr[i] + "+");
				} else {
					System.out.print(arr[i]);
				}
			}
		}
	}
}

 

おすすめ

転載: blog.csdn.net/magi1201/article/details/114808984