[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[批处理练习]算一算三年内你能养多少兔子?

本帖最后由 mxxcgzxxx 于 2011-6-7 13:05 编辑

800年前,意大利的数学家斐波纳契出版了惊世之作《算盘书》。在《算盘书》里,他提出了著名的“兔子问题”:假定一对兔子每个月可以生一对兔子,而这对新兔子在出生后第二个月就开始生另外一对兔子,这些兔子不会死去,那么一对兔子一年内能繁殖多少对兔子?
答案是一组非常特殊的数字:1,1,2,3,5,8,13,21,34,55,89……不难发现,从第三个数起,每个数都是前两数之和,这个数列则称为“斐波纳契数列”,其中每个数字都是“斐波纳契数”。

求解:批处理采用不同的思路算出3年以后的兔子数!

老手可以思考下超过3年9个月怎么办,能正确输出5年后的数据吗?
世界上没有学不会的知识,也没有想得到却做不到的事!

我发不进去没权限
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

本题算法是很简单的,主要是超过一定的序列后会生成大数是CMD不接受的,要正确输出就需要处理了
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

本帖最后由 mxxcgzxxx 于 2011-6-7 12:43 编辑

6# zm900612


1\出错:找不到文件%b

2\-1869596475

set /a 计算超过32位的数会变成负数进行循环计算不会显示出错信息
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

本帖最后由 mxxcgzxxx 于 2011-6-7 13:40 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set /a a=0,b=1,c=0
  3. for /l %%1 in (0,1,2) do (
  4.    for /l %%i in (1,1,12) do set /a "c=(b=a+(a=!b!))*2"
  5.    )
  6. echo 3年后你有%b%对兔子,其中%a%对为成年兔,共%c%只兔子!
  7. echo PS:如果中途你不吃或病死的话!
  8. pause>nul
复制代码
嗯,只能算到45个月是正常的,也就是3年9个月
给新人做题那我就改成3年吧

这题关键 的地方是初始的两个数 1 和另一个隐数 0
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

11# common

第14句 b19写成b119了!:(

另外你没有进入语块不用!!开变量延时。
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

返回列表