4 条题解

  • 7
    @ 2021-7-29 10:28:18

    题目本身很简单,需要注意要使用文件输入输出、输入输出优化、及保留 2 位小数输出。

    freopen("sigma.in", "r", stdin);
        freopen("sigma.out", "w", stdout);
        cin >> n;
        sum = 0; //求和
        for (int i = 1; i <= n; i++)
        {
            cin >> a[i];
            sum += a[i];
        }
        avg = sum / n; //平均数
        sum = 0;       //求与平均数之差的平方之和
        for (int i = 1; i <= n; i++)
            sum += (a[i] - avg) * (a[i] - avg);
        sigma2 = sum / n;     //方差
        sigma = sqrt(sigma2); //标准差
        cout << fixed << setprecision(2) << sigma;
    
    • @ 2023-3-3 7:48:43

      参照33DAI 的代码增加了一些代码

      #include <bits/stdc++.h>
      using namespace std;
      const int MAX = 5e6 + 1;
      int n , a[MAX];
      long long sum;
      double avg , sigma , sigma2;
      int main()
      {
          freopen("sigma.in", "r", stdin);
          freopen("sigma.out", "w", stdout);
          ios::sync_with_stdio(false);
          cin.tie(0);
          cin >> n;
          for (int i = 1; i <= n; i++)
          {
              cin >> a[i];
              sum += a[i];
          }
          avg = sum / n;
          sum = 0;
          for (int i = 1; i <= n; i++)
              sum += (a[i] - avg) * (a[i] - avg);
          sigma2 = sum / n;
          sigma = sqrt(sigma2);
          cout << fixed << setprecision(2) << sigma;
          return 0;
      } //已AC
      
  • 1
    @ 2021-8-7 0:56:52

    下面这个方法如果只读取不计算的话,大概200毫秒左右。没想到传统输入对速度有这么大的影响。

    #7	 Accepted 	316ms	19.5 MiB
    #8	 Accepted 	285ms	19.5 MiB
    #9	 Accepted 	292ms	19.5 MiB
    #10	 Accepted 	307ms	19.5 MiB
    
    freopen("sigma.in", "r", stdin);
        freopen("sigma.out", "w", stdout);
        int n=read();
        vector<int> v(n);
        double sum = 0;
        for (int i = 0; i < n; i++) v[i] = read(), sum+=v[i];
        double mean = sum / n;
        sum=0;
        for (auto i : v)
            sum += (i - mean) * (i - mean);
        printf("%.2f\n", sqrt(sum / n));
    
    • -13
      @ 2022-10-19 19:33:31

      60分做法:

      #include <bits/stdc++.h>
      using namespace std;
      int n, a[500005], sum = 0;
      int main()
      {
      freopen("sigma.in", "r", stdin);
      freopen("sigma.out", "w", stdout);
      ios::sync_with_stdio(false);
      cin.tie(0);
      cin >> n;
      for (int i = 1; i <= n; i++)
      {
      cin >> a[i];
      sum += a[i];
      }
      int avg = sum / n; //平均数
      for (int i = 1; i <= n; i++)
      sum += (a[i] - avg) * (a[i] - avg);
      int sigma2 = sum / n;     //方差
      int sigma = sqrt(sigma2); //标准差
      cout << fixed << setprecision(2) << sigma;
      return 0;
      }
      
      • -19
        @ 2023-2-6 15:30:08

        写题解请注意

        鼓励大家写题解,但注意题解格式。

        题解一定要有思路解析或代码注释,能否让别人理解你的思路

        也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。

        给代码两端加上这个会舒服一些

        ```cpp

        你的代码

        ```

        </span>

        这个点在键盘的左上角tab上面那个键,注意切换输入法

        #include<iostream>
        using namespace std;
        int main()
        {
            int n;
            cin>>n;//这是一个注释
            return 0;
        }
        

        请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

        抄袭题解一经发现直接取消成绩。

        题解被删除的可能

        1. 代码不符合格式规范
        2. 没有思路讲解或者没有注释,
        3. 无意义的题解

        大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。

        • 1

        信息

        ID
        1188
        时间
        1000ms
        内存
        256MiB
        难度
        8
        标签
        递交数
        1881
        已通过
        342
        上传者