题目

计算 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;
}

运行结果

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

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;
}

运行结果

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

Demo - 3 - C++

思路:递归

#include <iostream>
using namespace std;

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

运行结果

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

运行环境

Visual Studio Code

https://mp.weixin.qq.com/s/W9IESjerZuTtkMkHqGqfQA