读题,是不是很熟悉,这不就是小学时学习的等差数列吗?所以可以直接使用等差数列公式计算
思路一
#include<iostream>
using namespace std;
int main() {
int n;
cin>>n;
cout<<(((1+n)*n)/2);
return 0;
}
思路二
但是这是编程,不是数学课,所以最好不用公式,我们可以发现,这个等式的每个项都是递增一个,所以可以使用一个简单的for循环解出题目。
for循环格式
for(循环开始条件;循环结束条件;循环步骤){
循环体;
}
那么在本题中,开始条件是i=1,循环结束条件是i<=n,步骤是i++。而循环体是sum(总和)+=i。
那么根据这个思路,可以得出如下代码:
#include<iostream>
using namespace std;
int main() {
int n,sum=0;
cin>>n;
for(int i=1;i<=n;i++){
sum+=i;
}
count<<sum;
return 0;
}
思路三
上面的代码看起来比较繁琐(虽然这个代码看不太出来,但是当到了后面的长代码时就会很明显得体会到了),所以我们可以使用一个函数体来简化代码:
函数体格式:
函数类型 函数名(函数中所需要的变量以及类型){
函数体;
}
那么可以得出如下代码:
#include<iostream>
using namespace std;
int f(int n){
if(n==0)return 0;
return f(n-1)+n;
}
int main(){
int a;
cin>>n;
cout<<f(n);
}
那么这就是本题的基础解法,如有帮助到你,点个赞吧,谢谢