找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26003|回复: 3

[代码合集] [转载资料]用批处理作趣味数学题

[复制链接]
发表于 2011-10-11 13:31:30 | 显示全部楼层 |阅读模式
在CN-DOS混过的一定知道有zouzhxi大大在2006-11-12 08:20 AM发出的“趣味数学题”吧!(很可惜我没有机会到那里混混~)
这资料在 CN-DOS批处理精华贴 里找到的
这么好的东西竟然没有人发出来?(我在这里找不到~)
整理了下,便把它发出来了~





顺便把还未解决的问题贴出来:


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


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


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


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





再顺便发出我的代码(对不起,献丑了,有错误请指出)


25题:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1 1 79) do (
  4.         set d=%%i
  5.         set /a c=79-!d!
  6.         set /a l=!d!*4+!c!*2
  7.         if !l!==200 echo 鸡有!c!只 狗有!d!只
  8. )
  9. pause
复制代码


26题:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1 1 100) do (
  4.         set b=%%i
  5.         set /a s=100-!b!
  6.         set /a r=!s!%%4
  7.         if !r!==0 (
  8.                 set /a t=!b!*4+!s!/4
  9.                 if !t!==100 echo 大尚有!b!个人 小和尚有!s!个人
  10.         )
  11. )
  12. pause
复制代码

评分

参与人数 1PB +6 收起 理由
CrLf + 6 很给力,感谢分享!

查看全部评分

发表于 2011-10-11 20:32:54 | 显示全部楼层
非常好玩,考虑算法和脑力
发表于 2011-10-11 22:32:05 | 显示全部楼层
本帖最后由 CrLf 于 2011-10-11 22:46 编辑
  1. set d=%%i
  2. set /a c=79-!d!
  3. set /a l=!d!*4+!c!*2
复制代码
可以简化为
  1. set /a c=79-%%i,l=%%i*4+c*2
复制代码
其实也可以不遍历,可以用方程组或者解鸡兔同笼的简洁优美的古算法
 楼主| 发表于 2011-10-11 22:54:20 | 显示全部楼层
回复 3# CrLf


    谢谢斑竹~长知识了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 06:20 , Processed in 0.020165 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表