【深基4.例3】分类平均
题目描述
给定 n n n 和 k k k,将从 1 到 n n n 之间的所有正整数可以分为两类:A 类数可以被 k k k 整除(也就是说是 k k k 的倍数),而 B 类数不能。请输出这两类数的平均数,精确到小数点后 1 1 1 位,用空格隔开。
数据保证两类数的个数都不会是 0 0 0。
输入格式
输入两个正整数 n n n 与 k k k。
输出格式
输出一行,两个实数,分别表示 A 类数与 B 类数的平均数。精确到小数点后一位。
样例 #1
样例输入 #1
100 16
样例输出 #1
56.0 50.1
提示
数据保证, 1 ≤ n ≤ 10000 1 \leq n\leq 10000 1≤n≤10000, 1 ≤ k ≤ 100 1 \leq k \leq 100 1≤k≤100。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,k,s1 = 0,s2 = 0;
double a,b;
a=b=0;
cin>>n>>k;
for(;n>0;n--)
{
if(n%k==0)
{
a = a+n;
s1++;
}
else
{
b = b+n;
s2++;
}
}
a = a/s1;
b = b/s2;
cout<<fixed<<setprecision(1)<<a<<" "<<b;
return 0;
}