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-20 16:18:57
口胡精度?
by chinaboy @ 2020-03-20 16:26:42
@return20071007
不知啊,最开始我就是卡在了这里,但他们说吧float 改double 就好了,也确实AC了
by UnyieldingTrilobite @ 2020-03-20 16:27:23
QAQ
by ShyButHandsome @ 2020-04-04 08:09:42
@chinaboy
精度不同
float
只保证了
double
则有
by chinaboy @ 2020-04-09 15:59:09
@ShyButHandsome
好的,感谢,一直找不到原因。
by ShyButHandsome @ 2020-04-09 23:05:43
@chinaboy
你要了解
为什么浮点型叫浮点型
为什么浮点数不能%
为什么会有精度问题
浮点数还有一些特性,
比如:
浮点数是不能直接比较大小的
float
其实大部分时候并没有比double
快
等等
如果你还不了解,那么我建议你去百度弄懂
如果你已经了解了,那么请忽略上面这段
(橙名大佬怎么可能不懂)
by 周鸿远 @ 2020-10-23 21:05:23
#include <iostream>
#include <stdio.h>
using namespace std;
int n, k, sum;
int main () {
scanf ("%d%d", &n, &k);
for (int i = k; i <= n; i += k)
sum += i;
printf ("%.1f ", double (sum) / (n / k));
sum = (1 + n) * n / 2 - sum;
printf ("%.1f\n", double (sum) / (n - n / k));
return 0;
}