题目描述:
给定 n 和 k,将从 1 到 n 之间的所有正整数可以分为两类:A 类数可以被 k 整除(也就是说是 k 的倍数),而 B 类数不能。请输出这两类数的平均数,精确到小数点后 11 位,用空格隔开。
数据保证两类数的个数都不会是 00。
要求:
输入两个正整数 n 与 k。
输出一行,两个实数,分别表示 A 类数与 B 类数的平均数。精确到小数点后一位。
样例:
100 16 56.0 50.1
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int n, k;
int a = 0;
double A=0, B=0;
int a1 = 0, b1 = 0;
scanf("%d%d", &n, &k);
while (n != 0)
{
n--;
a++;
if (a % k == 0)
{
A += a;
a1++;
}
else
{
B += a;
b1++;
}
}
printf("%.1lf %.1lf", A/a1, B/b1);
return 0;
}