Board logo

标题: [代码合集] [转载资料]用批处理作趣味数学题 [打印本页]

作者: garyng    时间: 2011-10-11 13:31     标题: [转载资料]用批处理作趣味数学题

在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
复制代码


作者: zaixinxiangnian    时间: 2011-10-11 20:32

非常好玩,考虑算法和脑力
作者: CrLf    时间: 2011-10-11 22:32

本帖最后由 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
复制代码
其实也可以不遍历,可以用方程组或者解鸡兔同笼的简洁优美的古算法
作者: garyng    时间: 2011-10-11 22:54

回复 3# CrLf


    谢谢斑竹~长知识了~




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2