1.题目概述
验证尼科彻斯定理,即:任何一个整数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个连续奇数之和的形式输出。
输入描述:
输入一个int整数
输出描述:
输出分解后的string
示例
输入:6
输出:31+33+35+37+39+41
2.题解
思路分析
本题思路与高中的等差数列求解思路相同,题目描述为:任何一个整数m的立方都可以写成m个连续奇数之和,翻译为高中数学题目,即,首相a1,公差d为2的等差数列,数列前m项和Sn为m3,分别求出等差数列前m项的值。
因此,只需根据等差数列求和公式求出a1的值,则可求出该m个连续的奇数m3
等差数列公式:Sn=na1+n(n-1)d/2
将数据带入公式:m3=ma1+m(m-1)2/2
则可得:a1=m3-m(m-1)/m
具体实现
importjava.util.Scanner; publicclassMain { publicstaticvoidmain(String[] args) { Scannerin=newScanner(System.in); intm=in.nextInt(); //计算和intsn= (int)Math.pow(m,3); //计算首项inta1= (sn-m*(m-1)) /m; Strings=""; s+=a1; for(inti=1; i<m; i++){ s+="+"; s+= (a1+(i*2)); } System.out.println(s); } }
注:题目出自牛客网,链接如下: