中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论][探讨] 用批处理作趣味数学题
« [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] »
作者:
标题: [讨论][探讨] 用批处理作趣味数学题 取消高亮 | 上一主题 | 下一主题
zouzhxi
中级用户

蝴蝶之吻


积分 430
发帖 177
注册 2006-9-20
来自 广东深圳
状态 离线
『楼 主』:  [讨论][探讨] 用批处理作趣味数学题

1、求水仙花数。(水仙花数是这样的数字:这个数各个数位上数字的立方和等于该数。比如 153=1*1*1+5*5*5+3*3*3)
解决方案:4F

2、有四个数,其中任意三个数相加,所得的和分别是84,88,99,110,求这四个数?
解决方案:11F、

3、赵姑娘的岁数有以下特点:
  ①. 它的3次方是一个四位数,而4次方是一个六位数;
  ②. 这四位数和六位数正好是0到9这十个数字组成.
  问,这个数应该是什么数?
解决方案:12F


4、排一本辞典的页码共用了4889个数字。这本辞典共有多少页? 答案:1499
解决方案:15F

5、阿聪说他这次去西北看见一群骆驼,共有23个驼峰,60只脚。请问单、双峰骆驼各多少只?
解决方案:15F

6、有一个五位奇数,将这个五位奇数中的所有2都换成5,所有5也都换成2,其他数保持不变,得到一个新的五位数,若新五位数的一半仍比原五位数大1,那么原五位数是多少?
解决方案:23F、26F

7、五个连续自然数的和分别能被2、3、4、5、6整除,求满足此条件的最小的一组数。
解决方案:24F

8、我是个三位数,其中有一个数字是"3",还有一个数字是"1",另一个数字是未知数。如果把"3"变成"4"、把"1"变成"3",那么,原来的我将比假设后的我的一半还少"9"。你知道原来是个什么数?
解决方案:30F、

9、农夫琼斯对他老婆说:"喂,玛丽亚,如果照我的办法,卖掉75只小鸡,那么咱们的鸡饲料还能维持20夭。然而,假使照你的建议,再买进100只小鸡的话,那么鸡饲料将只够维持15天。"
"啊,亲爱的,"她答道,"那我们现在有多少只小鸡呢?"
问题就在这里了,他们究竟有多少只小鸡?
解决方案:30F

10、在所有的5位数当中,只包含两个3的数字有多少个?
解决方案:30F

11、将17分成几个自然数的和,求这几个自然数的最大乘积是多少?
解决方案:31F

12、将自然数2、3......乘到一起,它们的积的最后6位数恰好都是0,最后一个自然数最少可能是几?
解决方案:31F

13、被除数、除数和商三个数的和是181,商是12,求被除数。
解决方案:31F

14、商店里有六箱货物,分别重15、16、18、19、20、31千克,两个顾客买走了其中五箱.已知一个顾客买的货物重量是另一个顾客的2倍,那么,商店剩下的一箱货物重量是多少千克?
解决方案:33F

15、一个数除以3的余数是2,除以5的余数是1,则这个数除以15的余数是多少?
解决方案:35F

16、
    ①.  p是质数,且p×p+1也是质数。求2006×p。解决方案:暂无
    ②.  2006个2的乘积除以7的余数是多少。解决方案:40F

17、传说在印度的一个圣庙里安放着一个黄铜板,板上插着三根宝石针,在第一根宝石针上,从下到上依次穿着从大到小的64片中心有孔的金片,圣庙里的僧人按下面规则移动金片:每次只能移动一片,而且小片永远要放在大片的上面。当时传说,当64片金片都移动到另一根宝石针上的时候,世界将在一声霹雳中毁灭。把64片金片移动到另一根宝石针上,需要移动多少次呢?这是一个非常大的数字!
答案:18446744073709551615
解决方案:42F

18、有十张币值分别为1分、2分、5分、1角、2角、5角、1元、2元、5元、10元的人民币,能组成多少种不同的币值?
解决方案:43F

19、两个十位数3333333333和9999999999的乘积里有几个数字是偶数? (只用乘减法能做吗?)
解决方案:65F

20、甲、乙、丙三个互相咬合的齿轮,若使甲轮转5圈时,乙轮转7圈,丙轮转2圈,这三个齿轮齿数最少应分别是多少齿?
解决方案:66F

21、有两盆水,一冷一热。冷水盆里有个温度计,用一个小杯子去弄一杯热水倒到冷水里,发现温度上升了 5 度,再倒一杯热水进去,又上升了 3 度,问再倒一杯下去,会再上升几度?(此题由NaturalJ0提供)
解决方案:76F

22、求勾股数
解决方案:8F、9F

#23 ?
称珠子=
有243颗外形一模一样的珠子,其中有一颗稍重一点。用一架没有砝码的天平,至少称几次才能找出这颗珠子来?

#24 ?
坐井观天的青蛙=
坐井观天的那只青蛙一天突然心血来潮,想到外面的世界去看看,井深九尺,青蛙一次只能蹦三尺高,如果这样青蛙要蹦几次才能跳出井口呢?

#25 ?
鸡狗各多少=
小鸡、小狗七十九,二百只脚在地上走,想一想,算一算,多少只鸡?多少只狗?

#26 ?
大、小和尚各有几=
这是一道古算题:百个和尚百个粑,大和尚每人粑四个,小和尚四人一个粑,大、小和尚各有几?

#???
新题目
http://www.cn-dos.net/forum/view ... id=Y7sfAE#pid220052




——————————————分割线———————————————


***********************************
                     版务日志
***********************************
操   作:      主题加精
执行人:      3742668
原   因:      感谢zouzhxi和youxi01以及楼下各
                 位带来如此精彩的一贴。"共同学
                 习,共同进步“的宗旨在本贴中体
                 现得淋漓尽致。
说   明:      由于目前并没有一个明确的加精依
                据,所以如果对此次操作持怀疑态度
                的朋友可以跟贴指出,或者于站内
                的消息系统留言说明。
***********************************


[ Last edited by zouzhxi on 2007-8-21 at 12:16 PM ]

   此帖被 +7 点积分        点击查看详情   
评分人:【 redtek 分数: +5  时间:2006-11-16 06:46
评分人:【 AlexZhang 分数: +2  时间:2007-7-3 10:45


附件 1: 用批处理作趣味数学题(问题加代码).txt (2006-11-19 02:13, 19.94 K, 下载附件所需积分 1 点 ,下载次数: 122)
附件 2: 用批处理作趣味数学题(问题加代码).txt (2006-11-22 00:30, 20.16 K, 下载附件所需积分 1 点 ,下载次数: 96)


Butterfly Kiss Blog
计算机DIY联盟论坛
2006-11-12 08:20
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (234693993)  编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 2 楼』:  

符合勾股定律的数有很多啊,你怎么说(在数字1000000000000以内只有一个5*5=3*3+4*4这样一组数)啊?
比如:10*10=6*6+8*8等

[ Last edited by 不得不爱 on 2006-11-11 at 08:59 PM ]



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-11-12 08:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zouzhxi
中级用户

蝴蝶之吻


积分 430
发帖 177
注册 2006-9-20
来自 广东深圳
状态 离线
『第 3 楼』:  

是的,
运行的时候,我等了半小时,,,
得出的就是只有这一组,其他的,都是不相等的...

比如:6*6 ≠4*4+5*5



Butterfly Kiss Blog
计算机DIY联盟论坛
2006-11-12 08:59
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (234693993)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  


  在3位整数里面,只有153、370、371、407是符合水仙花数特点的。

  请大家测试这个代码:
@echo off&&setlocal ENABLEDELAYEDEXPANSION
for %%a in (1 2 3 4 5 6 7 8 9) do (
        for %%b in (0 1 2 3 4 5 6 7 8 9) do (
                for %%c in (0 1 2 3 4 5 6 7 8 9) do (
                        set/a result=%%a*%%a*%%a+%%b*%%b*%%b+%%c*%%c*%%c
                        if "!result!"=="%%a%%b%%c" (
                                echo %%a%%b%%c是水仙花数!
                        )

                )
        )
)
pause


2006-11-12 09:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 5 楼』:  

原来批处理的算法也如此有趣




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-11-12 09:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 6 楼』:  

  lxmxn 在4F的代码还可以精简一下,把 for %%a 换成 for /l 计数循环就可以省略掉数字的列举了。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-11-12 11:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 7 楼』:  

4位数:1634、8208、9474
5位数:54748、92727、93084

^_^

2006-11-12 12:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 8 楼』:  

  勾股数的算法如下,奇怪的是,同是用 for /l 计数循环,计算水仙花数的速度非常快,而计算勾股数就非常的慢了:
@echo off
echo.
echo 100以内的勾股数如下:
echo.
setlocal enabledelayedexpansion
for /l %%i in (1,1,100) do (
    for /l %%j in (1,1,100) do (
        for /l %%k in (1,1,100) do (
            set /a a=%%i*%%i
            set /a b=%%j*%%j
            set /a c=%%k*%%k
            set /a sum=!a!+!b!
            if !sum! equ !c! echo %%i %%j %%k
        )
    )
)
pause




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-11-12 12:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
youxi01
高级用户




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 9 楼』:  

TO:8楼斑竹:“勾股数的算法如下,奇怪的是,同是用 for /l 计数循环,计算水仙花数的速度非常快,而计算勾股数就非常的慢了:”你的计算量是前面的一千倍了,当然速度要慢的多。
     可以对代码稍做修改,不仅可以剔除相同项(如:3 4 5和4 3 5)而且可以大大提高运行效率:
@echo off
echo.
echo 100以内的勾股数如下:
echo.
setlocal enabledelayedexpansion
for /l %%i in (1,1,100) do (
    for /l %%j in (%%i,1,100) do (
        for /l %%k in (%%j,1,100) do (
            set /a a=%%i*%%i
            set /a b=%%j*%%j
            set /a c=%%k*%%k
            set /a sum=!a!+!b!
            if !sum! equ !c! echo %%i %%j %%k
        )
    )
)
pause
[ Last edited by youxi01 on 2006-11-16 at 11:41 PM ]

2006-11-13 00:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 10 楼』:  

  呵呵,没有考虑到剔除相同的结果,确实会使得计算量大为增加。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-11-13 01:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zouzhxi
中级用户

蝴蝶之吻


积分 430
发帖 177
注册 2006-9-20
来自 广东深圳
状态 离线
『第 11 楼』:  

我算的勾股数这样的:5*5=4*4+3*3是一组连继数字

  Quote:
另一题:
有四个数,其中任意三个数相加,所得的和分别是84,88,99,110,求这四个数?
我的方法是这样的,写出来给你们看,不要笑呀.
@ECHO OFF
echo.
setlocal enabledelayedexpansion
SET A=84
SET B=88
SET C=99
SET D=110
SET /A ABCD=A+B+C+D
SET /A SUM=ABCD/3
SET /A NO1=SUM-A
SET /A NO2=SUM-B
SET /A NO3=SUM-C
SET /A NO4=SUM-D
ECHO.
ECHO.NO1^=%NO1%
ECHO.NO2^=%NO2%
ECHO.NO3^=%NO3%
ECHO.NO4^=%NO4%
PAUSE
你们还有什么简单点的法子!!!!

再来一题:

  Quote:
赵姑娘的岁数有以下特点:
1. 它的3次方是一个四位数,而4次方是一个六位数;
2. 这四位数和六位数正好是0到9这十个数字组成.
问,这个数应该是什么数?

[ Last edited by zouzhxi on 2006-11-13 at 02:28 AM ]



Butterfly Kiss Blog
计算机DIY联盟论坛
2006-11-13 02:26
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (234693993)  编辑帖子  回复  引用回复
youxi01
高级用户




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 12 楼』:  

该小女子芳龄18。献丑了:
@echo off
setlocal enabledelayedexpansion
for /l %%i in (10 1 30) do (
::清空变量
     set flag=
     for /l %%a in (0 1 9) do set %%a=
::取得立方和四次方
     set /a cube=%%i*%%i*%%i
     set /a s=!cube!*%%i
     if !cube! geq 1000 if !cube! lss 10000 (
         if !s! geq 100000 if !s! lss 1000000 (
            set num=!s!!cube!
            call :test !num!
            if not defined flag echo %%i !num!
       )
    )
)

pause>nul
:test
for /l %%a in (0 1 9) do (
      set var=%1
::将参数的第一个数字赋值给var_;检查变量值!var_!是否已经被作为变量被定义。
      set var_=!var:~%%a,1!
      if defined !var_! set flag=1 & goto :eof
      set !var_!=A
)

2006-11-13 08:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 13 楼』:  


  强啊~


2006-11-13 09:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zouzhxi
中级用户

蝴蝶之吻


积分 430
发帖 177
注册 2006-9-20
来自 广东深圳
状态 离线
『第 14 楼』:  

再来一条,

  Quote:
    排一本辞典的页码共用了4889个数字。这本辞典共有多少页?

    答案:1499。



  Quote:
阿聪说他这次去西北看见一群骆驼,共有23个驼峰,60只脚。请问单、双峰骆驼各多少只?

闪人,去吃饭了...呵呵...星期一来逛...

[ Last edited by zouzhxi on 2006-11-13 at 10:10 AM ]



Butterfly Kiss Blog
计算机DIY联盟论坛
2006-11-13 10:06
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (234693993)  编辑帖子  回复  引用回复
youxi01
高级用户




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 15 楼』:  

一、
@echo off
set /a t_num=0
setlocal enabledelayedexpansion

echo 正在检测数据.....
for /l %%i in (1 1 4889) do (
    if !t_num! lss 4889 (
         if %%i lss 10 set /a t_num+=1
         if %%i geq 10 if %%i lss 100 set /a t_num+=2
         if %%i geq 100 if %%i lss 1000 set /a t_num+=3
         if %%i geq 1000 set /a t_num+=4
      )  else set /a num=%%i-1 & goto :exit
)
:exit
echo 要求的数为:%num%
pause>nul

二、
@echo off
set /a F_num=23
set /a J_num=60/4

setlocal enabledelayedexpansion
for /l %%i in (1 1 %J_num%) do (
   set /a S_num=%%i
   set /a B_num=%J_num%-%%i
   set /a num=!S_num!+2*!B_num!
   call :test !num! !S_num! !B_num!
)
pause>nul

:test
   if %1 EQU %F_num% echo 可能的组合为:单峰数目=%2 双峰数目=%3
   goto :eof

2006-11-13 12:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: