BantM @ 2022-03-22 20:57:20
#include <bits/stdc++.h>
#include<iostream>
#include<cstdio>
using namespace std;
double ans1,ans2;
int main(){
int num,k;int a=0,b=0;
//为什么a,b定义成double能过,int不行呢
int c=0,d=0;
cin>>num>>k;
for(int i=1;i<=num;i++){
if(i%k==0){
a=a+i;
c++;
}
else{
b=b+i;
d++;
}
}
ans1=a/c;
ans2=b/d;
printf("%.1lf %.1lf",ans1,ans2);
return 0;
}
by 金霸王电池 @ 2022-03-22 20:58:53
int 的话被认为是整除
by 金霸王电池 @ 2022-03-22 20:59:16
可以乘1.0
by Esawkm @ 2022-03-22 21:00:03
@Bant_Metor 是输出小数,如果他们是int就会输出整数吧
by LYqwq @ 2022-03-22 21:00:33
你在计算答案时用到 a/c
和 b/d
需要用浮点数类型计算,整型计算结果不对,没有小数。
其实定义成 int
也行,在计算的式子中乘上一个 double
类型的数就行,这样整个式子都会变成浮点数类型计算,可以直接写成 1.0*a/c
和 1.0*b/d
。
by BantM @ 2022-03-22 21:01:06
@金霸王电池 谢谢!
by BantM @ 2022-03-22 21:01:43
@lele2522650685 谢谢
by BantM @ 2022-03-22 21:02:10
@LYqwq 谢谢,我懂了