「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 == 0? 0:n+sum(n-1);
}
int main()
{
int ans=0;
ans=sum(100);
cout<<"1+2+3...+100="<<ans<<endl;
return 0;
}
运行结果
运行环境
Visual Studio Code
结语
欢迎小伙伴们提供其余的解法
这里海轰提供的代码仅供参考,希望对您有所帮助,如有错误欢迎小伙伴指正~
我是海轰ଘ(੭ˊᵕˋ)੭,如果您觉得写得可以的话,请点个赞吧
谢谢支持❤️
评论