luosw @ 2020-03-16 09:22:42
求解
#include<bits/stdc++.h>
using namespace std;
double ans1,ans2;
int n,k,a1,a2;
int main(){
cin>>n>>k;
for(int i=1;i<n;i++){
if(i%k==0){
ans1+=i;
a1++;
}
else{
ans2+=i;
a2++;
}
}
ans1/=a1;
ans2/=a2;
cout<<fixed<<setprecision(1)<<ans1<<' '<<ans2;
}
by UnyieldingTrilobite @ 2020-03-16 09:23:51
btd,另外为什么是<n而不是<=n
by luosw @ 2020-03-16 09:25:32
@return20071007 woc本中学生自愧不如,xxs牛逼!
by chinaboy @ 2020-03-20 16:03:46
@return20071007
是从1到n 所以是
(for int i=1;i<=n;i++)
by UnyieldingTrilobite @ 2020-03-20 16:05:30
@chinaboy 没说错啊
by chinaboy @ 2020-03-20 16:05:40
@return20071007
啊,不好意思,我看差了
by chinaboy @ 2020-03-20 16:13:29
@return20071007
我最开始以为是你不知道呢,后来一看是你在提醒他,理解差了,抱歉
by UnyieldingTrilobite @ 2020-03-20 16:13:47
@chinaboy 谔谔,没事
by chinaboy @ 2020-03-20 16:14:54
@return20071007
这题你知道为什么吗,算法是一样的,但用double 和float 结果是不一样的。。。。。迷惑行为。。。。。。
by UnyieldingTrilobite @ 2020-03-20 16:15:21
@chinaboy ?
by chinaboy @ 2020-03-20 16:18:05
#include<stdio.h>
int main()
{
int n,k,counta=0,countb=0;
//double suma=0,sumb=0;
float suma=0,sumb=0;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
{
if(i%k==0)
{
suma+=i;
counta++;
}
else
{
sumb+=i;
countb++;
}
}
// printf("%.1llf %.1llf\n",suma/counta,sumb/countb);
printf("%.1f %.1f\n",suma/counta,sumb/countb);
return 0;
}
@return20071007 你试试 10000 19 这组数据