文章目录
- C++
- 总结
本题链接:CSP 202206-1 归一化处理
本博客给出本题截图:
C++
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>using namespace std;const int N = 1010;double a[N]; // 直接定义为double类型不用进行后续的强制转换int main()
{int n;double sum = 0;cin >> n;for (int i = 0; i < n; i ++ ) cin >> a[i], sum += a[i];double ave = sum / n, d = 0;for (int i = 0; i < n; i ++ ) d += pow(a[i] - ave, 2);d /= n;for (int i = 0; i < n; i ++ ) printf("%lf\n", (a[i] - ave) / sqrt(d));return 0;
}
总结
会调用几个数学函数即可,题目让做什么做什么就可以了,题目中 a a a 数组虽然存的是整数但是定义为浮点数也没什么大不了的,可以省几步的强制转换,再一个就是误差不超过 1 0 − 4 10^{-4} 10−4 就可以了,所以没必要输出小数点后那么多位,题干在最后也提示了,直接 printf
即可。