题解 | #尼科彻斯定理#

尼科彻斯定理

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

#include <stdio.h>

//m个连续奇数其实就是一个公差为2,共有m项的等差数列
//由等差数列前n项和公式:Sn=(n(a1+an))/2
// 第n项公式:an=a1+(n-1)d
//设m个连续奇数组成的等差数列的首项为i
//那么前m项和为:( m (i+ (i+2(m-1)) ) )/2
//即 m * i + m * (m - 1)
int main()
{
    int m = 0;
    scanf("%d", &m);
    int i = 1;//奇数开头
    int j = 0;
    int count = m * m * m;//设m的立方为count
    while (i > 0)
    {
        if (m * i + m * (m - 1) == count)//整数m的立方与m个连续奇数之和相等
        {
            for (j = 0; j < m; j++)//负责打印
            {
                if (j == m - 1)//最后一个数时不用打印 + 号
                    printf("%d", i);
                else
                {
                    printf("%d+", i);
                }
                i += 2;
            }
            break;
        }
        i += 2;//每次增加2,所得都为奇数
    }
    return 0;
}

全部评论

相关推荐

勤奋努力的椰子这就开摆:这些经历跟硬件都没啥关系呀
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务