请帮助将代码 Pascal 翻译成 JS?
Please help to translate code Pascal to JS?
我有任务:在 sheet 纸上,沿着网格线绘制一个矩形。之后,计算位于矩形内部但不在矩形边界上的网格节点数,以及矩形内部单个网格线段的数量。编写一个程序,使用此数据确定矩形的大小。
我有这个 Pascal 代码:
var
K,N,i,j:integer;
begin
readln(K,N);
for i:=1 to trunc(sqrt(K)) do
if K mod i = 0 then
begin
if i*(K div i+1)+(K div i)*(i+1)=N then writeln(i+1,' ',K div i+1);
end;
end.
这是我在 JavaScript 中的代码:
const a = [1000, 2065]
function Sum(K, N) {
for (i = 1; i < Math.trunc(Math.sqrt(K)); i++) {
if (K % i === 0 && i * (Math.floor(K / (i) + 1) + Math.floor(K / i) * (i + 1)) === N) {
break;
}
}
console.log(i + 1, Math.floor(K / (i)) + 1)
}
Sum(a[0], a[1]);
你能帮忙解释为什么我在 JavaScript 中的答案是错误的吗?
不确定您要实现的目标,但是此 javascript 代码产生与您的 Pascal 版本相同的输出 (26, 41):
const K = 1000, N = 2065;
for (let i=1; i<Math.trunc(Math.sqrt(K)); i++)
if (K % i === 0)
if (i*(K / i+1)+(K / i)*(i+1) === N)
console.log(i+1, K / i+1);
我认为您弄乱了 Math.floor
中的括号或类似内容。
我有任务:在 sheet 纸上,沿着网格线绘制一个矩形。之后,计算位于矩形内部但不在矩形边界上的网格节点数,以及矩形内部单个网格线段的数量。编写一个程序,使用此数据确定矩形的大小。
我有这个 Pascal 代码:
var
K,N,i,j:integer;
begin
readln(K,N);
for i:=1 to trunc(sqrt(K)) do
if K mod i = 0 then
begin
if i*(K div i+1)+(K div i)*(i+1)=N then writeln(i+1,' ',K div i+1);
end;
end.
这是我在 JavaScript 中的代码:
const a = [1000, 2065]
function Sum(K, N) {
for (i = 1; i < Math.trunc(Math.sqrt(K)); i++) {
if (K % i === 0 && i * (Math.floor(K / (i) + 1) + Math.floor(K / i) * (i + 1)) === N) {
break;
}
}
console.log(i + 1, Math.floor(K / (i)) + 1)
}
Sum(a[0], a[1]);
你能帮忙解释为什么我在 JavaScript 中的答案是错误的吗?
不确定您要实现的目标,但是此 javascript 代码产生与您的 Pascal 版本相同的输出 (26, 41):
const K = 1000, N = 2065;
for (let i=1; i<Math.trunc(Math.sqrt(K)); i++)
if (K % i === 0)
if (i*(K / i+1)+(K / i)*(i+1) === N)
console.log(i+1, K / i+1);
我认为您弄乱了 Math.floor
中的括号或类似内容。