|
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 ]
附件
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 |
|
|
不得不爱
超级版主
我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
|
2006-11-12 08:46 |
|
|
zouzhxi
中级用户
蝴蝶之吻
积分 430
发帖 177
注册 2006-9-20 来自 广东深圳
状态 离线
|
|
2006-11-12 08:59 |
|
|
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 |
|
|
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
状态 离线
|
|
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 |
|
|
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 |
|