求助大佬??!!
查看原帖
求助大佬??!!
478755
Karis楼主2021/8/24 10:55
#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;

inline ll read()
{
	ll x = 0, f = 1;
	char ch = getchar();
	while(ch > '9' || ch < '0')
	{
		if(ch == '-')
        	f = -1;
        ch = getchar();
	}
	while(ch >= '0' && ch <= '9')
	{
		x = x * 10 + ch - '0';
		ch = getchar();
	}
	return x * f;
}

ll n, k, ans;

ll min(ll a, ll b)
{
	return a>b?b:a;
}

int main()
{
	n = read();
	k = read();
	ans = n * k;
	for(ll l = 1, r = 1; l <= n&& r<=n;l=r+1)
	{
		r = k/l ? min(k/(k/l), n) : n;
		ans -= (ll)((double)(l+r)/2.0*(r-l+1)*(k/l));
	}
	cout << ans << endl;
	return 0;
}

为什么不能除以2.0再转回long long??

2021/8/24 10:55
加载中...