华为机试HJ76:尼科彻斯定理

简介: 华为机试HJ76:尼科彻斯定理

题目描述:

验证尼科彻斯定理,即:任何一个整数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个连续奇数之和的形式输出。

本题含有多组输入数据。

输入描述:

输入一个int整数

输出描述:

输出分解后的string

示例:

输入:

6



输出:

31+33+35+37+39+41


解题思路:

本题是个数学问题,找规律。2的立方相当于第2个奇数和第3个奇数相加,3的立方相当于第4个奇数+第5个奇数+第6个奇数,那么N的立方等于N个奇数相加,开头的奇数是从哪个开始呢?1的立方有1个加项,2的立方有2个加项,3的立方有3个加项,则4的立方其开头的奇数是从1开始6(1+2+3)个奇数后的下一个奇数。


设计算法,假设输入num值,先计算前num-1项的加项有多少个,则根据序列求和公式sum=(num-1)*(num-1+1)/2,即前num-1项加项共有sum个;而num立方的第一个奇数是2*sum+1;写个循环从第一个奇数开始循环num次完成,前num-1次后面带个+字符。


测试代码:

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    int num;
    while(cin>>num)
    {
        int sum=num*(num-1)/2;
        vector<int> result;
        for(int k=0;k<num;++k)
        {
            if(k!=num-1)
            {
                cout<<2*(sum+k)+1<<"+";
            }
            else{
                cout<<2*(sum+k)+1<<endl;
            }
        }
    }
    return 0;
}


相关文章
|
1月前
|
存储
每日一题啦(● ̄(エ) ̄●)(尼克切斯定理,等差数列)
每日一题啦(● ̄(エ) ̄●)(尼克切斯定理,等差数列)
|
6月前
华为机试HJ72:百钱买百鸡问题
华为机试HJ72:百钱买百鸡问题
|
6月前
|
机器学习/深度学习 算法 数据安全/隐私保护
华为机试HJ28:素数伴侣
华为机试HJ28:素数伴侣
|
6月前
|
测试技术
华为机试HJ77:火车进站
华为机试HJ77:火车进站
|
7月前
HJ76--尼科彻斯定理
HJ76--尼科彻斯定理
57 0
|
算法 Windows
算法简单题,吾辈重拳出击 - 第 N 个泰波那契数
听说过斐波那契数列,那你听说过泰波那契数列吗?
|
缓存
【八月】每日一题 - 640. 求解方程
【八月】每日一题 - 640. 求解方程
72 0
|
机器学习/深度学习 算法 搜索推荐
洛谷每日三题之第六天
洛谷每日三题之第六天
|
机器学习/深度学习
LeetCode 训练场:1137. 第 N 个泰波那契数
LeetCode 训练场:1137. 第 N 个泰波那契数
78 0
BZOJ 1041: [HAOI2008]圆上的整点【数论,解方程】
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4210  Solved: 1908[Submit][Status][Discuss] Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数。
1241 0