C++基础19 for循环求和
- C++基础
- 2024-06-05
- 666热度
- 0评论
循环求和
求1+2+3+... ...+1000的和:
可以把这个加法运算,看成一个循环的过程。用变量s表示运算的结果,s的初始值为0,依次让s的值增加1,2,... ... ,1000,即:
s = s+1;s = s+2; ... ... ;s = s+1000;
用变量i表示s每次增加的数值,即:
for(int i=1;i<=1000;i++)
{
s = s+i;
}
即:s+1+2+3+4+ ... ... +1000
整数求和
输入整数m,n, 求m~n之间所有整数的和。
【输入格式】输入两个空格隔开的整数m,n(1<=m<=n<=1000)
【输出格式】输出一个整数,表示m~n的整数和
【输入样例】1 5
【输出样例】15
解析
1.求m~n之间所有整数的和,即m+(m+1)+(m+2)+... ...+(n-1)+n,从m开始,每次加1,可循环(n-m+1)次,从m加到n,即:for(int i=m;i<=n;i++)
2.用s来保存运算结果,即:s = s+i; // 可简写为s+=i;
参考代码
#include<iostream>
using namespace std;
int main( )
{
int m,n,s=0;
cin>>m>>n;
for(int i=m;i<=n;i++)
{
s+=i;
}
cout<<s;
return 0;
}
分数求和
输入整数n,求1+1/2+1/3...+1/n的和,保留2位小数。
【输入格式】输入一个整数n(1<=n<=1000)
【输出格式】输出一个实数,表示求和的结果,保留2位小数
【输入样例】8
【输出样例】2.72
解析
1.从1+1/2+1/3+...+1/n,每次加一个分数,则循环n次,即:for(int i=1;i<=n;i++)
2.用s来表示运算的结果,s应声明为实数类型变量,所求结果也是浮点型,即1/n的结果也应为浮点型,将1改为1.0即可:s+=1.0/i;
参考代码
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
double s=0;
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
s+=1.0/i;
}
printf("%.2f",s);
return 0;
}
偶数求和
输入整数m,n,求m~n之间所有偶数的和。
【输入格式】输入两个空格隔开的整数m,n(1<=m<=n<=1000)
【输出格式】输出一个整数,表示求和的结果
【输入样例】1 5
【输出样例】6
解析
1.从m加到n,先判断m是否是偶数,然后看m+1,m+2,一直到n,即:for(int i=m;i<=n;i++)
2.本题是让我们求偶数和,首先要先判断m是否是偶数(判断一个数是否是偶数,条件为:i%2==0,如果等于0则为偶数),如果m是偶数,就累加到s,再判断m+1,m+2,一直到n。
if(i%2==0) s+=i;
参考代码
#include<iostream>
using namespace std;
int main( )
{
int s=0,m,n;
cin>>m>>n;
for(int i=m;i<=n;i++)
if(i%2==0)
s+=i;
cout<<s;
return 0;
}