中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-17 16:57
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,270 会员排行
DOS批处理 & 脚本技术(批处理室) » 出题目,全是我从C语言的题目中挑出来的
可打印版本  3,175 / 38
第16楼 slore 发表于 2008-04-11 21:10
铂金会员 发帖 2,478 积分 5,212
水仙花数

建议使用3重循环……
第17楼 bat-zw 发表于 2008-04-11 21:42
金牌会员 发帖 1,276 积分 3,105
球落地问题(程序20):
因cmd局限于10位数字,用这种方法仅能精确算出球第10次落地弹起的高度,对于10次经过的距离不能精确计算(郁闷中):


[ Last edited by zw19750516 on 2008-4-11 at 10:05 PM ]
第18楼 bat-zw 发表于 2008-04-11 22:26
金牌会员 发帖 1,276 积分 3,105
年纪问题(程序28):
第19楼 terse 发表于 2008-04-11 22:34
银牌会员 发帖 946 积分 2,404
水仙花算法 确实三重循环为好 下面的忘记是那位版主写的 记得是namejm 版主写的:
第20楼 bat-zw 发表于 2008-04-11 22:35
金牌会员 发帖 1,276 积分 3,105
奇数个数(程序83):
第21楼 bat-zw 发表于 2008-04-11 22:41
金牌会员 发帖 1,276 积分 3,105
Originally posted by terse at 2008-4-11 22:34:
水仙花算法 确实三重循环为好 下面的忘记是那位版主写的 记得是namejm 版主写的:
第22楼 slore 发表于 2008-04-11 23:47
铂金会员 发帖 2,478 积分 5,212
从效率讲,3重循环比从111循环到999好。

对程序代码来说效率是第一的。
第23楼 terse 发表于 2008-04-11 23:54
银牌会员 发帖 946 积分 2,404
如果代简单的话 那就直接SET/a var
var=!str:~,1!!str:~,1!*!str:~,1!+!str:~1,1!*!str:~1,1!*!str:~1,1!.....
第24楼 26933062 发表于 2008-04-12 00:16
银牌会员 发帖 879 积分 2,268
个人认为 15楼和19楼没什么效率上的区别。
倒是15楼把延迟变量放到for内部有点多此一举。
若想证明效率谁的高,最好靠事实说话
求 1-10000 的水仙花数,同时记录下批处理运行时间,不就有结果了?
第25楼 plp626 发表于 2008-04-12 00:43
银牌会员 发帖 1,020 积分 2,278
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数

15楼的:
@echo off
setlocal enabledelayedexpansion
for /l %%i in (100,1,999) do (

set str=%%i
set/a a=!str:~,1!, b=!str:~1,1!, c=!str:~2,1!
set /a var=!a!*!a!*!a!+!b!*!b!*!b!+!c!*!c!*!c!
if !var! equ !str! echo !str!

)
pause



19楼的:
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,9) do for /l %%j in (0,1,9) do for /l %%k in (0,1,9) do (

set/a a=%%i,b=%%j,c=%%k
set num1=!a!!b!!c!
set /a num2=!a!*!a!*!a!+!b!*!b!*!b!+!c!*!c!*!c!
if !num1! equ !num2! echo !num1!

)
pause


[ Last edited by plp626 on 2008-4-12 at 12:51 AM ]
第26楼 sh19871122 发表于 2008-04-12 07:12
新手上路 发帖 8 积分 18
先谢谢各位了
第27楼 slore 发表于 2008-04-12 14:45
铂金会员 发帖 2,478 积分 5,212
循环次数上一样麽?
哪个更少呢?
取每位,和将几位合起来那个更快呢?
第28楼 26933062 发表于 2008-04-12 15:00
银牌会员 发帖 879 积分 2,268
Originally posted by slore at 2008-4-12 14:45:
循环次数上一样麽?
哪个更少呢?
取每位,和将几位合起来那个更快呢?

求 1-10000 的水仙花数,同时记录下批处理运行时间,不就有结果了?
第29楼 plp626 发表于 2008-04-12 16:09
银牌会员 发帖 1,020 积分 2,278
Originally posted by 26933062 at 2008-4-12 03:00 PM:

求 1-10000 的水仙花数,同时记录下批处理运行时间,不就有结果了?




两个时间一样,误差在0.01秒以内,小于%time%的“系统”误差。
第30楼 slore 发表于 2008-04-12 16:31
铂金会员 发帖 2,478 积分 5,212
如果你可以测试到99999999999999999999999999999999999的话……
上一页  1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023