1 条题解
-
0
【深基4.例3】分类平均
解题思路
枚举 1~n,按能否被 k 整除分别统计两类的总和与数量,最后各自用总和除数量。
正确性说明
每个整数恰好属于一个分支,因此两类计数与总和准确;平均数按定义为总和除数量。
易错点
必须用实数除法;题目保证两类都非空;先输出可整除类。
复杂度
时间 O(n),空间 O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, k; cin >> n >> k; long long sa = 0, sb = 0; int ca = 0, cb = 0; for (int i = 1; i <= n; i++) if (i % k == 0) { sa += i; ca++; } else { sb += i; cb++; } cout << fixed << setprecision(1) << 1.0 * sa / ca << " " << 1.0 * sb / cb << "\n"; return 0; }
- 1