描述
验证尼科彻斯定理,即:任何一个整数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≤m≤100
进阶:时间复杂度:O(m) ,空间复杂度:O(1)
输入描述:
输入一个int整数
输出描述:
输出分解后的string
示例1
输入:
6
输出:
31+33+35+37+39+41
#include <stdio.h> //以下是Senky的代码 int main() { int m = 0; scanf("%d", &m); int n = (m-1) * m + 1; //m的立方写成m个连续奇数之和的形式,首个奇数元素就是m*(m-1)+1 int i = 0; for ( i = 0; i < m - 1; i++) { printf("%d+", n); n += 2; } printf("%d", n); return 0;//编辑于2022/10/08 }
总结:
①输入6,那么string:31+33+35+37+39+41中,第一个奇数31是m*(m-1)+1,发现了这一规律后,就很容易了;
②当前帖子仅供自我精进、学习使用,有不足之处欢迎指正;