标题: [数值计算] 【已解决】用批处理找出1000以下的自然数中,属于 3 或 5 的倍数的数字之和 [打印本页]
作者: openye0521 时间: 2017-3-16 14:39 标题: 【已解决】用批处理找出1000以下的自然数中,属于 3 或 5 的倍数的数字之和
本帖最后由 openye0521 于 2017-3-16 16:17 编辑
#题目
#10 以下的自然数中,属于 3 或 5 的倍数的有 3, 5, 6 和 9,它们之和是 23
#找出 1000 以下的自然数中,属于 3 或 5 的倍数的数字之和。
本人小白没有一点思路 求解
作者: pcl_test 时间: 2017-3-16 15:36
- @echo off
- (for /l %%a in (3,1,999) do (
- set "n="
- set /a "1/(%%a%%3)"||set n=1
- set /a "1/(%%a%%5)"||set n=1
- if defined n set /a s+=%%a
- ))>nul 2>&1
- echo;%s%
- pause
复制代码
作者: happy886rr 时间: 2017-3-16 15:38
本帖最后由 happy886rr 于 2017-3-16 16:34 编辑
- @echo off
- set/p n=Please input a number:
- set/a "n3=(n-1)/3, n5=(n-1)/5, n15=(n-1)/15, S=(3*n3*(n3+1)+5*n5*(n5+1)-15*n15*(n15+1))>>0x01"&call set/p =Result=:%%S%%
复制代码
作者: 老刘1号 时间: 2017-3-16 20:05
本帖最后由 老刘1号 于 2017-3-16 20:09 编辑
回复 2# pcl_test
竟敢潜水!
这是笨算法:- '&@(cls&cscript -nologo -e:vbscript "%~0"&PAUSE&EXIT)
- num=0
- for i = 1 to 1000-1
- if i mod 3 = 0 or i mod 5 = 0 then
- num=num+i
- wscript.echo i
- end if
- next
- wscript.echo "总和:"&num
复制代码
较为机智的算法:- '&@(cls&cscript -nologo -e:vbscript "%~0"&PAUSE&EXIT)
- num=0
- num1=0
- num2=0
- do until num1 >= 1000-1
- num1=num1+3
- wscript.echo num1
- num=num+num1
- loop
- do until num2 >= 1000-5
- num2=num2+5
- if num2 mod 3 <> 0 then '不枚举是3倍数的
- wscript.echo num2
- num=num+num2
- end if
- loop
- wscript.echo "总和:"&num
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |