用C语言 给定 n(n≤10000) 和 k (k≤100),将从 1 到 n 之间的所有正整数可以分为两类:A 类数可以被 k 整除(也就是说是 k 的倍数),而 B 类数不能。

给定 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);
    }
}