链接:尼科彻斯定理_牛客题霸_牛客网 (nowcoder.com)
描述
验证尼科彻斯定理,即:任何一个整数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个连续奇数之和的形式输出。
数据范围:1\le m\le 100\1≤m≤100
进阶:时间复杂度:O(m)\O(m) ,空间复杂度:O(1)\O(1)
输入描述:
输入一个int整数
输出描述:
输出分解后的string
示例1
输入:6
输出:31+33+35+37+39+41
说明:
由题目可知,其实是一个以公差为2的等差数列
S1=m*m*m
再由等差前n项和公式:Sn=n*a1+[n*(n+1)]/2;
联立上两式,算出a1的表达式,再带入读取的m即可算出a1项。后面再每项+2就可以算出
#include <stdio.h>
int main() {
int m = 0;
scanf("%d",&m);
int a1 = m*m-m+1;
int ch[10000];
ch[0]= a1;
for(int i = 0;i < m;i++)
{
ch[i]=a1;
a1 += 2;
}
printf("%d",ch[0]);
for(int i = 1;i<m;i++)
{
printf("+%d",ch[i]);
}
return 0;
}