gpt4 book ai didi

javascript - 从 1 到 100,如果是 3 的倍数则打印 "ping",如果是 5 的倍数则打印 "pong",否则打印数字

转载 作者:可可西里 更新时间:2023-11-01 02:31:09 25 4
gpt4 key购买 nike

我刚面试完回家,面试官让我写一个程序:

它应该从 1 数到 100,然后打印...

如果是3的倍数,“ping”
如果是 5 的倍数,"pong"
否则,打印数字。

如果它是 3 和 5 的倍数(比如 15),它应该打印“ping”和“pong”。

我选择了 Javascript,并想到了这个:

for (x=1; x <= 100; x++){
if( x % 3 == 0 ){
write("ping")
}
if( x % 5 == 0 ){
write("pong")
}
if( ( x % 3 != 0 ) && ( x % 5 != 0 ) ){
write(x)
}
}

实际上,我对我的解决方案非常不满意,但我想不出更好的解决方案。

有谁知道更好的方法吗?检查了两次,我不喜欢它。我在家里进行了一些测试,但没有成功,这是唯一返回正确答案的测试...

最佳答案

恕我直言,您的解决方案非常令人满意。很难,因为半数既不是 3 的倍数也不是 5 的倍数,我会从另一个 Angular 开始:

for (var x=1; x <= 100; x++){
if( x % 3 && x % 5 ) {
document.write(x);
} else {
if( x % 3 == 0 ) {
document.write("ping");
}
if( x % 5 == 0 ) {
document.write("pong");
}
}
document.write('<br>'); //line breaks to enhance output readability
}​

Fiddle

此外,请注意除 0NaN 之外的任何数字都是真值,因此我删除了不必要的 != 0 和几对括号。


这是另一个版本,它不会两次进行相同的模运算,但需要存储一个变量:

for (var x=1; x <= 100; x++) {
var skip = 0;
if (x % 3 == 0) {
document.write('ping');
skip = 1;
}
if (x % 5 == 0) {
document.write('pong');
skip = 1;
}
if (!skip) {
document.write(x);
}
document.write('<br>'); //line breaks to enhance output readability
}

Fiddle

关于javascript - 从 1 到 100,如果是 3 的倍数则打印 "ping",如果是 5 的倍数则打印 "pong",否则打印数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13845437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com