中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 00:47
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论][探讨] 用批处理作趣味数学题 精华I 查看 36,430 回复 139
76 发表于 2006-11-21 23:38 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
不知道这个合乎要求不:
@echo off
set c1=5
set c2=3
set/a pen=2*c2/(c1-c2)
set/a 温差=(pen+1)*c1
set/a 温升=(温差-c1-c2)/(pen+3)
echo 原来水有%pen%杯,原来盆里的水和杯里的水的温差是%温差%度。
echo 现在温升是%温升%度。
pause
77 发表于 2006-11-21 23:58 ·  中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
完全正确
78 发表于 2006-11-22 02:03 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
79 发表于 2006-11-22 05:06 ·  IANA 局域网IP(Private-Use)
中级用户
★★
蝴蝶之吻
积分 430
发帖 177
注册 2006-09-20 12:00
19年会员
UID 63170
来自 广东深圳
状态 离线
80 发表于 2006-11-22 07:17 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
19年会员
UID 68504
性别 男
来自 湖南==》广东
状态 离线
先来最简单的25、26
25、”鸡兔同笼“

@echo off
setlocal enabledelayedexpansion

for /l %%i in (1 1 79) do (
set /a chick_num=%%i
set /a dog_num=79-!chick_num!
set /a footnum=2*!chick_num!+4*!dog_num!
if !footnum! EQU 200 (
set msg1=小鸡的只数为:!chick_num!
set msg2=狗的只数为:!dog_num!
goto :exit
)
)
:exit
echo %msg1%
echo %msg2%
pause>nul


26、大小和尚的问题;

@echo off
setlocal enabledelayedexpansion

for /l %%i in (0 4 100) do (
set /a small=%%i/4
set /a big=400-%%i*4
set /a total=!small!+!big!
if !total! EQU 100 (
set msg1=小和尚人数为:%%i
set /a num=100-%%i
set msg2=大和尚人数为:!num!
goto :exit
)
)

:exit
echo %msg1%
echo %msg2%

pause>nul
81 发表于 2006-11-22 07:40 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
19年会员
UID 68504
性别 男
来自 湖南==》广东
状态 离线
23题,称珠子的问题,应该是舍弃“运气好”的情况吧,我要是运气好,说不定两次就搞定!^--^

@echo off
setlocal enabledelayedexpansion
set flag=1
call :test 243
echo 至少应该要:%flag%次

pause>nul

:test
set /a tmp=%1 %% 2
set /a num=%1
if %tmp% NEQ 0 set /a num-=1
if %num% geq 2 (
set /a num/=2
set /a flag+=1
call :test !num!)
goto :eof
82 发表于 2006-11-23 07:09 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
19年会员
UID 68504
性别 男
来自 湖南==》广东
状态 离线
我也来贴两题:

1、找素数(效率要求较高)
2、找出1-49之内,任意两数相乘,乘积相等的数字(如:2*3=6 和1*6=6)
83 发表于 2006-11-25 03:04 ·  中国 北京 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
期待~~绝不能让好贴沉下去~:)
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
84 发表于 2006-11-25 06:57 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
找10000以内的素数
@echo off
setlocal enabledelayedexpansion
echo 10000以内的素数有:
set/p a= 2 3 5 7 <nul
for /l %%a in (9 2 99) do (set/a a=%%a%%3
set/a b=%%a%%5
set/a c=%%a%%7
if not !a!==0 if not !b!==0 if not !c!==0 set/p a=%%a <nul)
for /l %%a in (101 2 9999) do (for /l %%b in (3 2 97) do (set/a a=%%a%%%%b
if !a!==0 set b=1)
if not !b!==1 set/p a=%%a <nul
set b=0)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
youxi01 +2 2006-11-25 12:00
85 发表于 2006-11-25 07:03 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
第24题:
@echo off
:1
set/a a+=3
set/a b+=1
if not %a%==9 goto 1
echo 这只青蛙要蹦%b%次才能跳出井口
pause

第25题:
@echo off
set/a a=(200-79*2)/(4-2)
set/a b=79-a
echo 共有%b%只鸡,%a%只狗
pause
86 发表于 2006-11-25 07:13 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
26题:
@echo off
set/a a=(100*4-100*1)/(4*4-1)
set/a b=100-a
echo 共有%b%个小和尚,大和尚%a%个
pause
87 发表于 2006-11-25 11:58 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
19年会员
UID 68504
性别 男
来自 湖南==》广东
状态 离线
欣赏 不得不爱 斑竹的素数搜索程序;

斑竹对24 25 26的解答似乎是解方程的方式哦
88 发表于 2006-11-25 12:10 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
19年会员
UID 68504
性别 男
来自 湖南==》广东
状态 离线
找出1-43之内,任意两数相乘,乘积相等的数字(如:2*3=6 和1*6=6)

贴一段自己的不成熟的代码:

@echo off
setlocal enabledelayedexpansion

for /l %%a in (2 1 49) do (
for /l %%b in (%%a 1 49) do (
title %%a %%b
set /a mult=%%a*%%b
call :test !mult! %%a %%b
set !mult!=%%a × %%b
)
)
pause>nul

:test
if defined %1 (
echo !%1!=!mult!
echo %2 × %3 =!mult!
echo.)
89 发表于 2006-11-25 21:48 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
Originally posted by youxi01 at 2006-11-24 22:58:
欣赏 不得不爱 斑竹的素数搜索程序;

斑竹对24 25 26的解答似乎是解方程的方式哦

小学时算鸡兔问题不就是这么算的吗,难道还要解方程?
90 发表于 2006-11-25 21:59 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
88楼的代码漏了不少的数哦
如:
2*27=54
3*18=54
6*9=54
1*54=54
而你的代码却只输出:
2*27=54
3*18=54
论坛跳转: