题目描述
给定 n(n\le10000)n(n≤10000) 和 k(k\le 100)k(k≤100),将从 1 到 n 之间的所有正整数可以分为两类:A 类数可以被k 整除(也就是说是 k的倍数),而 B 类数不能。请输出这两类数的平均数,精确到小数点后 1 位,用空格隔开。
数据保证两类数的个数都不会是 0。
#include<iostream>
using namespace std;
int main()
{
int n,k,i,sum1=0,sum2=0;
float aver1,aver2,t1=0,t2=0;//SUM或者t至少有一个用float定义 否则除后为整数
cin>>n>>k;
for(i=1;i<=n;i++)
{
if(i%k==0)//求余数等于零即可求出倍数
{
t1+=1;
sum1+=i;
}
else
{
t2+=1;
sum2+=i;
}
}
aver1=sum1/t1;
aver2=sum2/t2;
cout.precision(1);//定义保留一位小数
cout<<fixed<<aver1<<" "<<fixed<<aver2;
return 0;
}