题解 | #尼科彻斯定理#
尼科彻斯定理
https://www.nowcoder.com/practice/dbace3a5b3c4480e86ee3277f3fe1e85
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
int main()
{
//输入数字m
int m;
scanf("%d", &m);
//根据观察得出每个数字m的立方拆开的首项是有规律的: 1 3 7 13 21 31 42 。。。。。。。他们之间的差值是正偶数2 4 6 7 810.。。
//由此便可以创建出一个数组存放首项,之后的每一项都是+2得到的连续的奇数,由此全部相加m个连续奇数即可验证定理
//得到每一个首项
int arr[100];
int i = 1;
int n = 0;
for (int j = 0; j < 100; j++)
{
i = i + n;
arr[j] = i;
n = n + 2;
}
//定理得出:
if (m >= 1 && m <= 100)
{
int k = 0;
int i = 0;
if (i < m - 1)
{
for (k = arr[m - 1]; i < m - 1; i++)
{
printf("%d+", k);
k = k + 2;
}
}
if (i == m - 1)
{
printf("%d", k);
}
}
return 0;
}
#算法简单题##c语言编程#
查看9道真题和解析
美的集团公司福利 727人发布