题目 1015: [编程入门]求和训练
时间限制: 1Sec 内存限制: 128MB 提交: 29165 解决: 17346
题目描述
求以下三数的和,保留2位小数 1~a之和 1~b的平方和 1~c的倒数和
输入
a b c
输出
1+2+...+a + 1^2+2^2+...+b^2 + 1/1+1/2+...+1/c
样例输入复制
100 50 10
样例输出复制
47977.93
/*解题思路:
最后结果由三部分和组成,每部分用一个for循环求解,最后相加即为结果
注意事项:
求某个数的倒数,可以直接用1除以数本身,也可以使用cmath(math.h)库中的pow函数,返回数的-1次方也是它的倒数。
倒数求出来是浮点数,所以其和也必须是float类或double类,包括最后的结果,也因此应定义为float类或double类。
参考代码:*/
#include<iostream>
#include<cstdio>
using namespace std ;
int main()
{
int a,b,c ;
cin>>a>>b>>c ;
int nSuma = 0,nSumb = 0 ;//a,b部分和
float fSum = 0,fSumc = 0 ;//总和,c部分和
for(int i = 1;i <= a;i++)
{
nSuma += i ;//直接累加
}
for(int i = 1;i <= b;i++)
{
nSumb += i * i ;//平方累加
}
for(float i = 1;i <= c;i++)
{
fSumc += 1 / i ;//倒数累加
}
fSum = nSuma + nSumb + fSumc ;
printf("%.2f\n",fSum) ;//printf更方便格式输出
//cout的输出方法:cout<<fixed<<setprecision(2)<<nSum<<endl ;
//fixed表示小数点,setprecision()为设置精度
return 0 ;
}