[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 【已解决】用批处理找出1000以下的自然数中,属于 3 或 5 的倍数的数字之和

本帖最后由 openye0521 于 2017-3-16 16:17 编辑

#题目
#10 以下的自然数中,属于 3 或 5 的倍数的有 3, 5, 6 和 9,它们之和是 23
#找出 1000 以下的自然数中,属于 3 或 5 的倍数的数字之和。
本人小白没有一点思路 求解
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. (for /l %%a in (3,1,999) do (
  3.     set "n="
  4.     set /a "1/(%%a%%3)"||set n=1
  5.     set /a "1/(%%a%%5)"||set n=1
  6.     if defined n set /a s+=%%a
  7. ))>nul 2>&1
  8. echo;%s%
  9. pause
复制代码
2

评分人数

TOP

本帖最后由 happy886rr 于 2017-3-16 16:34 编辑
  1. @echo off
  2. set/p n=Please input a number:
  3. 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

评分人数

TOP

本帖最后由 老刘1号 于 2017-3-16 20:09 编辑

回复 2# pcl_test

   竟敢潜水!


这是笨算法:
  1. '&@(cls&cscript -nologo -e:vbscript "%~0"&PAUSE&EXIT)
  2. num=0
  3. for i = 1 to 1000-1
  4. if i mod 3 = 0 or i mod 5 = 0 then
  5.       num=num+i
  6.     wscript.echo i
  7. end if
  8. next
  9. wscript.echo "总和:"&num
复制代码
较为机智的算法:
  1. '&@(cls&cscript -nologo -e:vbscript "%~0"&PAUSE&EXIT)
  2. num=0
  3. num1=0
  4. num2=0
  5. do until num1 >= 1000-1
  6.     num1=num1+3
  7.     wscript.echo num1
  8.     num=num+num1
  9. loop
  10. do until num2 >= 1000-5
  11.     num2=num2+5
  12. if num2 mod 3 <> 0 then '不枚举是3倍数的
  13.     wscript.echo num2
  14.     num=num+num2
  15. end if
  16. loop
  17. wscript.echo "总和:"&num
复制代码
1

评分人数

TOP

返回列表