Board logo

标题: [ 新手习题 3 ] 批处理找规律 [打印本页]

作者: wxcute    时间: 2008-11-27 14:04     标题: [ 新手习题 3 ] 批处理找规律

找出 2、5、8 这三个数的规律(这是个纯数学题),利用公式求出第四个数。

目的:掌握对一系列事物中隐含规律的总结归纳方法。实际运用中有许多难题,只要找到其规律就可迎刃而解。

要求:要写出公式(代码中隐含公式也行),不能直接用 echo 显示,公式不限。

评分:代码可读性 1 分;
   首个新方法 6 分,第二个 5 分,依次类推,最少 2 分;
   一人可多种方法,新方法追加 3 分,已经出现过的方法追加 1 分。
作者: xxx3212    时间: 2008-11-27 15:29

  1. @echo off&setlocal ENABLEDELAYEDEXPANSION
  2. for /l %%i in (1,2,7) do set/a var+=1&set/a num=!var!+%%i& echo !num!
  3. pause
复制代码

作者: yuhaodong    时间: 2008-12-19 06:07     标题: 大案

@echo off
:loop
set /a n=2
set /p a=请输入该规律的第几个数
set /a c=2+(%a%-1)*3
cls
echo 该规律的第%a%个数:%c%
pause
goto loop
作者: youxi01    时间: 2008-12-19 08:43

???
这个不是等差数列吗?
d为3
作者: steven007    时间: 2008-12-19 09:03

@echo off
setlocal enabledelayedexpansion
for /l %%i in (2,3,11) do set s=%%i
echo 第四个数是:!s!
pause>nul
作者: steven007    时间: 2008-12-19 09:06

不用延时,代码更简单了
@echo off
for /l %%i in (2,3,11) do set s=%%i
echo 第四个数是:%s%
pause>nul
作者: wxcute    时间: 2008-12-19 10:16     标题: 回复 4楼 的帖子

规律可能不止一种,毕竟只有三个数。
作者: firewolf85    时间: 2008-12-21 13:25

  1. @echo off&title 数列的简单计算&setlocal enabledelayedexpansion
  2. echo 数列的简单计算,请输入数列的前3项
  3. set er=0
  4. set /p a1=请输入A1:
  5. set /p a2=请输入A2:
  6. set /p a3=请输入A3:
  7. set /a b1=a2-a1
  8. set /a b2=a3-a2
  9. set /a c1=a2/a1
  10. set /a c2=a3/a2
  11. if %b1%==%b2% (
  12. set /a a4=a3+b1
  13. echo 您输入的数列是等差数列,第四项为!a4!。
  14. set /a er+=1
  15. )
  16. if %c1%==%c2% (
  17. set /a a4=a3*c1
  18. echo 您输入的数列是等比数列,第四项为!a4!。
  19. set /a er+=1
  20. )
  21. if %er%==0 echo 您输入的数列既不是等差数列也不是等比数列。
  22. echo 分析完毕,请按任意键推出...
  23. pause>nul  
复制代码
只支持等差和的等比数列,其他的可以自行添加公式。
作者: firewolf85    时间: 2008-12-21 13:35

原帖由 wxcute 于 2008-12-19 10:16 发表
规律可能不止一种,毕竟只有三个数。

2*5=10
5*8=40
8*20=160
第4个数是20??
这样可以吗??
作者: wxcute    时间: 2008-12-23 20:55     标题: 回复 9楼 的帖子

这个应该不算规律罢,8*10、8*20 不是随便选了吗?
作者: leaparde    时间: 2008-12-26 11:09

  1. @echo off
  2. for /l %%i in (1,1,4) do set /a n=3*%%i-1
  3. echo 第4个数是:%n%
  4. pause>nul
复制代码
数的规律是:n=3*i-1 i=1,2,3,4……
                     2=3*1-1
                     5=3*2-1
                     8=3*3-1

[ 本帖最后由 leaparde 于 2008-12-26 16:58 编辑 ]
作者: leaparde    时间: 2008-12-26 17:01

改一下,这个看得顺眼一点。
  1. @echo off
  2. title 数列运算
  3. color 1f
  4. mode con:cols=40 lines=20
  5. setlocal enabledelayedexpansion
  6. for /l %%i in (1,1,4) do (
  7. set /a n=3*%%i-1
  8. echo 第%%i个数是:!n!
  9. )
  10. pause>nul
复制代码

作者: evenar    时间: 2011-5-28 20:12

9# firewolf85


哥们的想法很 。。厉害  
让人想不到啊 1!!!!强!!
作者: common    时间: 2011-6-8 22:05

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set a=2
  4. for /l %%b in (!a! 3 100) do echo %%b
  5. pause
复制代码

作者: asd821089612    时间: 2011-7-22 11:27

  1. @echo off
  2. set /p a=请输入该数列的第n个数字
  3. set /a b=3*%a%-1
  4. echo %b%
  5. pause>nul
复制代码

作者: 唯尘    时间: 2023-8-15 21:48

@echo off
set /a n=2
set /p num=请输入数字在序列中的排序:
set /a summ=2+3*(%num%-1)
echo 第%num%个数是:%summ%
pause>nul 2>&1
作者: jszw666    时间: 2023-8-19 11:07

每天来这里,学习初步知识,有启发。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2