• 华为OJ平台——尼科彻斯定理


    题目描述:

      验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。

    例如:

      1^3=1 

      2^3=3+5 

      3^3=7+9+11 

      4^3=13+15+17+19 

    输入

      输入一个int整数

    输出

      输出分解后的string

    样例输入

      6

    样例输出

      31+33+35+37+39+41

    思路:

    由例子1~4给出的结论猜测  n3 = (n*(n-1)+1) + (n*(n-1)+2 +1) + ... + (n*(n+1)-2 + 1 )(共n项,等差数列,差为2)

    而又等差数列的性质知:

      (n*(n-1)+1) + (n*(n-1)+2 +1) + ... + (n*(n+1)-2 + 1 )

    = ((n*(n-1)+1) + (n*(n+1)-2 + 1 ))* n/2

    = (n- n + 1  +  n2 + n -1)*n/2

    =n3   成立

    所以可以直接给出答案

     1 import java.util.Scanner;
     2 /**
     3  * 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
     4 例如:
     5   1^3=1 
     6   2^3=3+5 
     7   3^3=7+9+11 
     8   4^3=13+15+17+19 
     9 输入
    10   输入一个int整数
    11 输出
    12   输出分解后的string
    13 样例输入
    14   6
    15 样例输出
    16   31+33+35+37+39+41
    17  *
    18  */
    19 public class Nicosiche {
    20 
    21     public static void main(String[] args) {
    22         Scanner cin = new Scanner(System.in) ;    
    23         int n = cin.nextInt() ;
    24         cin.close();
    25         String res = "" ;
    26         //输出结果
    27         for (int j = n * (n - 1) / 2; j < n * (n + 1) / 2; j++) {
    28             if(j != n * (n + 1) / 2 -1){
    29                 res += (j*2+1) + "+" ;
    30             }else{
    31                 res += (j*2+1) ;
    32             }            
    33         }            
    34         System.out.println(res);    
    35 
    36     }
    37 }

                  

  • 相关阅读:
    PHP 学习轨迹
    beego 遇到的一些问题
    Fiddler 502问题
    SourceTree
    Trait
    PHP PSR 标准
    解决MySQL联表时出现字符集不一样
    Git 代码管理命令
    PHP 运行相关概念
    CentOS 7
  • 原文地址:https://www.cnblogs.com/mukekeheart/p/5598544.html
Copyright © 2020-2023  润新知