题解 | 华为HJ76#尼科彻斯定理#

尼科彻斯定理

https://www.nowcoder.com/practice/dbace3a5b3c4480e86ee3277f3fe1e85

描述

验证尼科彻斯定理,即:任何一个整数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个连续奇数之和的形式输出。
数据范围:1m100 
进阶:时间复杂度: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,发现了这一规律后,就很容易了;
当前帖子仅供自我精进、学习使用,有不足之处欢迎指正;
#华为笔试#
华为-HJ 文章被收录于专栏

机试的题解

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务