题目
任何一个自然数n的立方均可写成n个连续奇数之和。例如:
1*3=1
2*3=3+5
3*3=7+9+11
4*3=13+15+17+19
编程实现:输入一自然数n,求组成n3的n个连续奇数。
输入数据
输入为一个自然数。
输出数据
输出为自然数的立方分解式,其中各项按从小到大的顺序排列。
代码
在奇数数列1,3,5,7,9,,,中1*3就等于1,2*3就等于1*3的数之后的两个项和,3*3等于2*3的项之后的三个项……
而等号右边最后的数正好是1,3,6,10,即1,2,3,4,5,6,,,的前n项和,所以最后一个数时奇数数列的n*(n+1)/2项,那么第一项就是(n*(n+1)/2-n+1)
#include<stdio.h>
int main()
{
long int a, t;
scanf("%ld", &a);
t = (1 + a) * a / 2 - a + 1;
printf("%ld^3=%ld", a, 2 * t - 1);
for (int i = 1; i < a; i++) printf("+%ld", 2 * (t + i) - 1);
return 0;
}