给定 n(n≤10000) 和 k (k≤100),将从 1 到 n 之间的所有正整数可以分为两类:A 类数可以被 k 整除(也就是说是 k 的倍数),而 B 类数不能。请输出这两类数的平均数,精确到小数点后 1 位,用空格隔开。
输入n和k任意一个为0则退出。
给定 n(n≤10000) 和 k (k≤100),将从 1 到 n 之间的所有正整数可以分为两类:A 类数可以被 k 整除(也就是说是 k 的倍数),而 B 类数不能。请输出这两类数的平均数,精确到小数点后 1 位,用空格隔开。
输入n和k任意一个为0则退出。
供参考:
#include <stdio.h>
int main()
{
int n, k, i, ca, cb;
double sa, sb;
while (scanf("%d%d", &n, &k) == 2 && n != 0 && k != 0)
{
sa = 0; sb = 0; ca = 0; cb = 0;
for (i = 1; i <= n; i++)
{
if (i % k == 0){
sa += i;
ca++;
}
else {
sb += i;
cb++;
}
}
printf("%.1f %.1f\n", sa / ca, sb / cb);
}
}