中国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] »
作者:
标题: [讨论][探讨] 用批处理作趣味数学题 上一主题 | 下一主题
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 106 楼』:  打印数字金字塔

如题: 用批处理显示

                                        1
                                      121
                                    12321
                                ........................
                          12345678987654321
禁止全部使用 echo 命令.



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-3-20 01:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
youxi01
高级用户




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

试下以下代码?
@echo off
setlocal enabledelayedexpansion
set "space=         "

for /l %%i in (1 1 9) do (
    for /l %%a in (1 1 %%i) do (
         set str1=!str1!%%a
         set str2=%%a!str2!
         set str=%space%!str1!!str2:~1!
      )
    echo !str:~%%i!
    set str1=
    set str2=
    set str=
)
pause>nul


2007-3-20 01:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 108 楼』:  一共有多少苹果

这是个很简单的数学题.    妈妈买回一篓苹果, 老大拿走了1/3, 老二拿走了剩下的1/3, 老三又拿走了剩下的1/3, 这时还剩 8 个苹果, 一共有多少苹果?



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-3-20 02:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 109 楼』:  打印 N 阶矩阵.

如题, N>=3, 可不用表格形显示. 如:

                         2       7        6

                         9       5        1

                         4       3        8



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-3-20 02:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 110 楼』:  酷似百鸡问题

1. 36块砖, 36人搬, 男搬4, 女搬3, 两个小孩抬块砖. 男人,女人和小孩各有多少人?

2. 百钱买百牛, 公牛3贯, 母牛4贯,小牛600文, 公牛,母牛和小牛各有多少头?(一贯=1000文)



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-3-20 03:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 111 楼』:  古代问题(九章算术,七, 盈不足), 求人数和羊价.

有一群人一起买羊, 若每人出 5 两, 还差 45 两, 若每人出 七 两, 还差 3 两, 问有多少买羊, 羊的价钱是多少.



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-3-20 03:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
youxi01
高级用户




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



  Quote:
Originally posted by 6622186 at 2007-3-20 02:41 AM:
这是个很简单的数学题.    妈妈买回一篓苹果, 老大拿走了1/3, 老二拿走了剩下的1/3, 老三又拿走了剩下的1/3, 这时还剩 8 个苹果, 一共有多少苹果?


@echo off
setlocal enabledelayedexpansion

for /l %%i in (1 1 10000) do (
    title 正在检测 %%i ....
    set /a tmp=%%i*8/27
    if !tmp! EQU 8 echo %%i && goto :exit
)
:exit
pause>nul
其实,以上的代码还可以简单的(根据数学原理),简单到不好意思(没什么代码可以写了。)

2007-3-20 04:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 113 楼』:  

这样就可以计算大于2^31 的数字, 我以为不可能, 不过代码不太懂. 看到 ! 就头疼.



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-3-20 11:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 114 楼』:  

112楼

你是不是先算了再写成这样的?

你的那句"set/a tem=%%i*8/27&np if !temp! equ 8 echo %%i....." 不就是说%%i是27 吗?

那还算什么?

2007-3-20 18:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 115 楼』:  

完整的解法是这样的:

设共有Y。
第一次取了它的1/3, 留了2/3*Y;
第二次又取了剩下的1/3,就留了2/3*(2/3*Y);
第三次再取第二次取后剩下的1/3,只留下2/3*(2/3*(2/3*Y)).

hehe  
这就是说:2/3*(2/3*(2/3*Y))=8
那么Y就是27。

2007-3-20 18:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
youxi01
高级用户




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



  Quote:
Originally posted by scriptor at 2007-3-20 06:29 PM:
112楼

你是不是先算了再写成这样的?

你的那句"set/a tem=%%i*8/27&np if !temp! equ 8 echo %%i....." 不就是说%%i是27 吗?

那还算什么?

如果说,要完全模拟用程序来解决的话,似乎更简单.根据题目的意思,这个数一定是27的倍数(它可以连续被3除3次).所以代码可以写成:

for /l %%i (27 27 100000) do (
   ....)

似乎是更简单了,一下就可以得出是 27.

2007-3-20 22:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


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



  Quote:
Originally posted by 6622186 at 2007-3-19 12:07:
如题: 用批处理显示

                                        1
                                      121
                                    12321
                                ........................
                          12345678987654321
禁止全部使用 echo 命令.

  临走前跟个代码帖:
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,9) do (
    for /l %%j in (9,-1,%%i) do set /p= <nul
    for /l %%k in (1,1,%%i) do set /p=%%k<nul
    set /a num=%%i-1
    for /l %%l in (!num!,-1,1) do set /p=%%l<nul
    echo.
)
pause




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2007-3-21 02:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dbslong
新手上路





积分 5
发帖 3
注册 2007-6-13
状态 离线
『第 118 楼』:  #25题,小鸡21只,小狗58,“借花献佛“

@echo off
echo.
echo 小鸡、小狗七十九,二百只脚在地上走,想一想,算一算,多少只鸡?多少只狗?
echo.
setlocal enabledelayedexpansion
set /a x=79
set /a y=200
for /l %%i in (1,1,79) do (
    for /l %%j in (1,1,50) do (

            set /a a=2*%%i
            set /a b=4*%%j            
            set /a sum1=%%i+%%j
            set /a sum2=!a!+!b!
            if !sum1! equ !x! if !sum2! equ !y!  echo %%i %%j
           )
)
pause

2007-6-13 23:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dbslong
新手上路





积分 5
发帖 3
注册 2007-6-13
状态 离线
『第 119 楼』:  第26# 大和尚20小和尚80

@echo off
echo.
echo 百个和尚百个粑,大和尚每人粑四个,小和尚四人一个粑,大、小和尚各有几?
echo.
setlocal enabledelayedexpansion
set /a x=100
for /l %%i in (1,1,25) do (
    for /l %%j in (1,1,100) do (

            set /a a=4*%%i
            set /a b=%%j/4            
            set /a sum1=%%i+%%j
            set /a sum2=!a!+!b!
            if !sum1! equ !x! if !sum2! equ !x!  echo "大和尚" %%i "小和尚" %%j
           )
)
pause

2007-6-13 23:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lwgea
新手上路





积分 4
发帖 2
注册 2006-11-27
状态 离线
『第 120 楼』:  语言无界线

确实是.

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


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



论坛跳转: