题解
偶数均值
1 条题解
-
0
解题思路
先找出所有偶数且个位数字是 2 的数(
x % 2 == 0 && x % 10 == 2),算出它们的均值。再遍历所有数字,输出比均值小的。如果没有满足条件的数字,输出NO。题目要求格式化输入输出,所以用
scanf/printf。参考代码
#include <cstdio> using namespace std; int main() { int n; scanf("%d", &n); int a[1005]; int cnt = 0; double sum = 0; for (int i = 0; i < n; i++) { scanf("%d", &a[i]); // 偶数且个位数字是2 if (a[i] % 2 == 0 && a[i] % 10 == 2) { sum += a[i]; cnt++; } } if (cnt == 0) { printf("NO\n"); return 0; } double avg = sum / cnt; printf("%.3f\n", avg); // 均值保留3位 int first = 1; for (int i = 0; i < n; i++) { if (a[i] < avg) { // 比均值小的数字 if (!first) printf(" "); printf("%d", a[i]); first = 0; } } printf("\n"); return 0; }复杂度分析
循环 n 次,时间复杂度 O(n),额外空间复杂度 O(n)。
- 1