gpt4 book ai didi

batch-file - 在 for 循环中使用 if 语句

转载 作者:行者123 更新时间:2023-12-02 04:36:55 28 4
gpt4 key购买 nike

我正在尝试制作一个批处理文件来解决第一个欧拉项目问题,http://projecteuler.net/problem=1 ,但我的循环中需要一个 if 语句来检查 n modulo 3 或 5 是否为 0。求和突然停止工作。

我的代码:

echo off

set sum=0
for /l %%n in (1,1,999) do (
set a/ sum+=%%n *(only add if n%%3 == 0 or n%%5 == 0)*
)

echo %sum%
pause

最佳答案

这是一个非常有效的解决方案,尽管它有点困惑:

@echo off
setlocal
set /a sum=0
for /l %%N in (1 1 999) do set /a "sum+=%%N/!((%%N%%5)*(%%N%%3))" 2>nul
echo %sum%

如果 %%N 可被 3 或 5 整除,则表达式 (%%N%%5)*(%%N%%3) 产生零,或者如果它不能被任何一个整除,则非零。 ! 采用反逻辑值,因此 0 变为 1,非零变为 0。将 %%N 除以该表达式会产生 %%N 或被零除错误。因此,只需将整个表达式添加到总和中,并将错误消息重定向到 nul。

最终结果 - 仅添加可被 3 或 5 整除的数字:-)

关于batch-file - 在 for 循环中使用 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21782508/

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