我在编程博客中阅读此功能来执行上述任务,但我无法理解。 (x * y也应该是最大的。)同样,最大化x * y的偏好大于y-x。
long long ans = 0;
int X,Y;
for( i = 2;i <= n / i;++i){
int k = n / (i * i);
int y = k *i*i;
int x = k * (i - 1) * (i - 1);
if((long long)x * y > ans){
ans = (long long)x * y;
X = x;
Y = y;
}
}
答案 0 :(得分:0)
i <= n / i
确保值x
和y
小于n
,因为它们来自循环内i
的平方。 k
派生自n
和i
。x
和y
又来自k
和{{1} }}。) i
,int k = n / (i * i);
,int y = k * i * i;
确保值int x = k * (i - 1) * (i - 1);
是完美的正方形。x * y
= x * y
。k * k * i * i * (i - 1) * (i - 1)
是x * y
)的完美平方。 k * i * (i - 1)
小于x
,因为y
来自x
而(i - 1)
来自y
。i
循环中的三个陈述只是跟踪最大if
的对。