#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char const *argv[])
{
int n,k,a=0,b=0,ai=0,bi=0;
cin >> n >> k;
for(int i = 1;i <= n;i++)
{
if(i%k==0)a+=i,ai++;
else b+=i,bi++;
}
double ax = 1.0*a/ai;//这里使用1.0强制转换后AC
double bx = 1.0*b/bi;
cout << fixed << setprecision(1) << ax << " " << bx;
return 0;
}
使用C++ 的STL vector更方便
#include <bits/stdc++.h>
using namespace std;
vector<int> a,b;
int main(int argc, char const *argv[])
{
int n ,k;cin >> n >> k;
for(int i = 1;i <= n;i++)
if(i%k==0)a.push_back(i);
else b.push_back(i);
// for(int i=1;i<=n;++i)i%k?b.push_back(i):a.push_back(i);//存下所有数
printf("%.1lf %.1lf\n", accumulate(a.begin(),a.end(),0)*1.0/a.size(),
accumulate(b.begin(),b.end(),0)*1.0/b.size());
return 0;
}
不够耐心,这种题调试了那么久