题解 P5719 【【深基4.例3】分类平均】
lihaobushiren · · 题解
此题略有小坑。按常规套路出牌只能过三个点(一共五个)
定位:水题,但是稍微有点弯。 弯在于要考虑周全。
事情是这样的。分别用i、j存储两类数的个数,sum1和sum2存储两类数的和。 然后对应相除,保留一位小数,结束。
弯弯绕:
(1)k没说是几,有可能是0.
(2)i、j有可能是0.
当时想了半天该怎么输出,随便乱写一下竟然过了!
下面是代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long int k,n,i=0,j=0,sum1=0,sum2=0;
double c=0.0,d=0.0;
cin>>n>>k;
if(k==0)return 0; //k=0 没得算。
for(int p=1;p<=n;p++)
{
if(p%k==0)
{
sum1+=p;
i++;
}
else
{
sum2+=p;
j++;
}
}
if(i!=0)c=sum1*1.0/(i*1.0);
if(j!=0)d=sum2*1.0/(j*1.0);
printf("%.1lf %.1lf",c,d);
return 0;
}