「C++小例子」1+2+3+...+100=?【003】

海轰Pro

共 1599字,需浏览 4分钟

 ·

2021-04-25 13:15

题目

计算 1+2+3+...+100 = ?

解答

Demo - 1 - C++

思路:循环,依次递加

#include <iostream>
using namespace std;

// 主函数
int main()
{
    int sum=0;
    for(int i=1;i<=100;++i) {
        sum += i;
    }
    cout<<"1+2+3+..+100="<<+sum<<endl;
    return 0;
}

运行结果

Demo - 2 - C++

思路:取巧,使用sizeof函数

    1+2+3+...+100

=((1+100)*100 )/2

=(101*100)/2

这里我们定义一个bool类型的二维数组a

100行,101列

也就是 a[100][101]

sizeof()函数的作用

返回一个对象或类型所占的内存字节数

bool类型在c++为长度为8bit,占1个字节

那么a[100][101]所占内存字节就是100*101

最后再除2即可

#include <iostream>
using namespace std;

// 主函数
int main()
{
    bool a[100][101];
    cout<<"1+2+3+...+100="<<(sizeof(a)>>1)<<endl;
    return 0;
}

运行结果

Demo - 3 - C++

思路:递归

#include <iostream>
using namespace std;

// sum函数:求1+2+3...+n的和
int sum(int n) {
    return n == 00:n+sum(n-1);
}
int main()
{
    int ans=0;
    ans=sum(100);
    cout<<"1+2+3...+100="<<ans<<endl;
    return 0;
}

运行结果

运行环境

Visual Studio Code

结语

欢迎小伙伴们提供其余的解法

这里海轰提供的代码仅供参考,希望对您有所帮助,如有错误欢迎小伙伴指正~

我是海轰ଘ(੭ˊᵕˋ)੭,如果您觉得写得可以的话,请点个赞吧

谢谢支持❤️

写留言|查看留言


浏览 29
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报