首先看一下题
描述
验证尼科彻斯定理,即:任何一个整数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
一、问题分析
首先读题,仔细看描述中的内容,发现需求是
1.验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
例如:
1^3 = 1
2^3 = 3 + 5
3^3 = 7 + 9 + 11
4^3 = 13 + 15 + 17 + 19
2.输入一个正整数m(m小于等于100),将m的立方写成m个连续奇数之和的形式输出。
3.数据范围:m大于等于1小于等于100
4.进阶:时间复杂度O(m),空间复杂度:O(1)
5.输入描述:输入一个int整数
6.输出描述输出分解后的string
二、解题思路
1.首先包含标准输入输出库
#include <stdio.h>
2.然后开始主函数
int main() {
3.我们定义一个整数int m;
while(scanf("%d", &m) != EOF) {
4.开始的奇数为m*m - m + 1;
int start = m * m - m + 1;
printf("%d", start);
5.输出每一个数字
for(int i = 1; i < m; i ++) {
printf("+%d", start + i * 2);
}
printf("\n");
}
return 0;
}
三、具体步骤
使用的语言是C
#include <stdio.h>
int main() {
int m;
while (scanf("%d", &m) != EOF) {
int start = m * m - m + 1;
printf("%d", start);
for(int i = 1; i < m; i++) {
printf("+%d", start + i * 2);
}
printf("\n");
}
return 0;
}
332

被折叠的 条评论
为什么被折叠?



