题解 P2393 【yyy loves Maths II】

· · 题解

题解 P2393 (给初学者看的,大佬勿喷)

思路:首先要计算很多数的和,题目中并没有说是多少个所以要做一个死循环,一直循环输入直到敲回车。

#include<bits/stdc++.h>
using namespace std;
double S,T;
int main()
{
    while((cin>>T)!=0)
    {
        S+=T*1000000;//去除小数部分,直接乘,变成整数
    }
    cout<<fixed<<setprecision(5)<<S/1000000;//这个初学者可能看不懂,相当于printf("%.5lf",s/1000000)。
    return 0;
 } 

- 然而只有70或80分,这是为什么,因为精度可能会出毛病。所以要用long double 保证精度没毛病

AC代码 供参考 S=ans,T=tmp

#include<bits/stdc++.h>
using namespace std;
long double S,T;
int main()
{
    while((cin>>T)!=0)
    {
        S+=T*1000000;
    }
    cout<<fixed<<setprecision(5)<<S/1000000;;
    return 0;
 } 

谢谢各位大佬对本人的关心!!!