CSP 202206-1 归一化处理

举报
辰chen 发表于 2022/08/23 06:53:52 2022/08/23
2.2k+ 0 0
【摘要】 会调用几个数学函数即可,题目让做什么做什么就可以了,题目中 $a$ 数组虽然存的是整数但是定义为浮点数也没什么大不了的,可以省几步的强制转换,再一个就是误差不超过 $10^{-4}$ 就可以了,所以没必要输出小数点后那么多位,题干在最后也提示了,直接 `printf` 即可。

本题链接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 数组虽然存的是整数但是定义为浮点数也没什么大不了的,可以省几步的强制转换,再一个就是误差不超过 1 0 4 10^{-4} 就可以了,所以没必要输出小数点后那么多位,题干在最后也提示了,直接 printf 即可。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。