标题: [ 新手习题 3 ] 批处理找规律 [打印本页]
作者: wxcute 时间: 2008-11-27 14:04 标题: [ 新手习题 3 ] 批处理找规律
找出 2、5、8 这三个数的规律(这是个纯数学题),利用公式求出第四个数。
目的:掌握对一系列事物中隐含规律的总结归纳方法。实际运用中有许多难题,只要找到其规律就可迎刃而解。
要求:要写出公式(代码中隐含公式也行),不能直接用 echo 显示,公式不限。
评分:代码可读性 1 分;
首个新方法 6 分,第二个 5 分,依次类推,最少 2 分;
一人可多种方法,新方法追加 3 分,已经出现过的方法追加 1 分。
作者: xxx3212 时间: 2008-11-27 15:29
- @echo off&setlocal ENABLEDELAYEDEXPANSION
- for /l %%i in (1,2,7) do set/a var+=1&set/a num=!var!+%%i& echo !num!
- 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
- @echo off&title 数列的简单计算&setlocal enabledelayedexpansion
- echo 数列的简单计算,请输入数列的前3项
- set er=0
- set /p a1=请输入A1:
- set /p a2=请输入A2:
- set /p a3=请输入A3:
- set /a b1=a2-a1
- set /a b2=a3-a2
- set /a c1=a2/a1
- set /a c2=a3/a2
- if %b1%==%b2% (
- set /a a4=a3+b1
- echo 您输入的数列是等差数列,第四项为!a4!。
- set /a er+=1
- )
- if %c1%==%c2% (
- set /a a4=a3*c1
- echo 您输入的数列是等比数列,第四项为!a4!。
- set /a er+=1
- )
- if %er%==0 echo 您输入的数列既不是等差数列也不是等比数列。
- echo 分析完毕,请按任意键推出...
- 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
- @echo off
- for /l %%i in (1,1,4) do set /a n=3*%%i-1
- echo 第4个数是:%n%
- 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
改一下,这个看得顺眼一点。- @echo off
- title 数列运算
- color 1f
- mode con:cols=40 lines=20
- setlocal enabledelayedexpansion
- for /l %%i in (1,1,4) do (
- set /a n=3*%%i-1
- echo 第%%i个数是:!n!
- )
- pause>nul
复制代码
作者: evenar 时间: 2011-5-28 20:12
9# firewolf85
哥们的想法很 。。厉害
让人想不到啊 1!!!!强!!
作者: common 时间: 2011-6-8 22:05
- @echo off
- setlocal enabledelayedexpansion
- set a=2
- for /l %%b in (!a! 3 100) do echo %%b
- pause
复制代码
作者: asd821089612 时间: 2011-7-22 11:27
- @echo off
- set /p a=请输入该数列的第n个数字
- set /a b=3*%a%-1
- echo %b%
- 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 |