我在编程博客中阅读了此功能以完成上述任务,但我无法理解。(另外x * y应该是最大的),最大化x * y的优先级还大于yx。
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;
}
}
i <= n / i
确保值x
和y
小于n
,因为它们是从i
循环内的平方求出的。k
衍生自n
和i
,而且x
与y
被依次从衍生k
和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
循环中的三个语句仅跟踪具有最大对的那对x * y
。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句