【C语言编程练习】5.12 兔子产仔问题
1. 题目要求
把一对新生的兔子关在屋子里,已知一对两个月大的兔子以后买一个月可以生一对小兔子,而这一对心生的小兔子初生两个月以后才可以生小兔子,假如一年内没有死亡,一年可以繁殖成多少对?
2. 题目分析
感觉很复杂啊,还是先不去看答案,一般这种问题,我的解决思路都是先老老实实地写前面几个月的,然后找规律
第一个月 1
第二个月 1
第三个月 1+1 2
第四个月 1+1+1 3
第五个月 1+1+1+1+1 5
发现这个归纳能力还是很缺乏呢!看了参考答案以后也知道这是斐波拉契数列
哎~
3. 代码尝试
#include "stdio.h"
int F(int n){
if(n == 1 || n == 2){
return 1;
}else{
return F(n-1)+F(n-2);
}
}
int main(){
int sum=0,i;
for(i=1;i<=12;i++){
sum = sum + F(i);
}
printf("the answer is %d\n",sum);
return 0;
}
但为什么会不对呢?
【犯错原因】为了题目的要求,多次体现累加!但其实F(n-1)+F(n-2)就已经体现了累加的思想了
#include "stdio.h"
int F(int n){
if(n == 1 || n == 2){
return 1;
}else{
return F(n-1)+F(n-2);
}
}
int main(){
printf("the answer is %d\n",F(12));
return 0;
}
4. 思考
有时候会把事情想复杂,然后出现不必要的“冗余”这其实是非常没有必要的。一定要逻辑清楚呢!
【C语言编程练习】5.12 兔子产仔问题的更多相关文章
- 第二章 C语言编程实践
上章回顾 宏定义特点和注意细节 条件编译特点和主要用处 文件包含的路径查询规则 C语言扩展宏定义的用法 第二章 第二章 C语言编程实践 C语言编程实践 预习检查 异或的运算符是什么 宏定义最主要的特点 ...
- 华为C语言编程规范
DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...
- linux 操作系统下c语言编程入门
2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 ...
- Linux下C语言编程基础学习记录
VIM的基本使用 LINUX下C语言编程 用gcc命令编译运行C语言文件 预处理阶段:将*.c文件转化为*.i预处理过的C程序. 编译阶段:将*.i文件编译为汇编代码*.s文件. 汇编阶段:将*.s ...
- R语言编程艺术(4)R对数据、文件、字符串以及图形的处理
本文对应<R语言编程艺术> 第8章:数学运算与模拟: 第10章:输入与输出: 第11章:字符串操作: 第12章:绘图 =================================== ...
- R语言编程艺术(2)R中的数据结构
本文对应<R语言编程艺术>第2章:向量:第3章:矩阵和数组:第4章:列表:第5章:数据框:第6章:因子和表 ======================================== ...
- C语言编程规范
C语言编程规范 6 函数与过程 6.1 函数的功能与规模设计 函数应当短而精美,而且只做一件事.不要设计多用途面面俱到的函数,多功能集于一身的函数,很可能使函数的理解.测试.维护等变得困难. 6.2 ...
- Linux C语言编程基本原理与实践
Linux C语言编程基本原理与实践(2018-06-16 19:12:15) Linux C语言编程基本原理与实践 高效的学习带着目的性: 是什么 -> 干什么 -> 怎么用 重识C语言 ...
- C语言编程规范试题
C语言编程规范试题 [说明]: 1.本试题中不考虑头文件引用问题(假定已经包含正确的头文件),C语言的标准函数都可用: 2.如果不特别说明,假定程序运行环境为:操作系统Windows 2000, VC ...
随机推荐
- 二叉树(BT)相关
1.same tree /** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * ...
- linux_systemctl介绍
声明:本文转载自:systemd (中文简体) systemd 是 Linux 下的一款系统和服务管理器,兼容 SysV 和 LSB 的启动脚本.systemd 的特性有:支持并行化任务:同一时候採用 ...
- 关于接口(Interface)
接口,其实是指类之间约定的协议,可以包含方法.属性.事件和索引: 接口成员不允许使用访问修饰符号(public.private.protected.internal),所有的接口成员都是公共的. 接口 ...
- mysql将表数据导出为txt或csv文件
语法:select 字段 from 表名 into outfile 路径 示例txt:select * from stu_class into outfile './stu_class.text'; ...
- Centos6.5使用yum安装mysql——快速上手必备(转载)
第1步.yum安装mysql[root@stonex ~]# yum -y install mysql-server安装结果:Installed: mysql-server.x86_64 0: ...
- 更改checkbox的默认样式
最近做一个vue项目要用到checkbox要修改默认样式,选中是纯白色,不选择只有白色边框,起初以为很容易,没想到还折腾了一翻,记录一下. 几经折腾,理清input 和label的关系 最终改进版本, ...
- web前端效率提升-nginx+nodejs搭建本地生态
1.起因 编写的项目是一个偏向于后台管理的web系统,使用了angular框架,在绑定数据的时候就依赖于后台的接口格式. 以前是后台写好接口后,我在绑定,在这之前一些逻辑是没法做的,有时候后台接口给的 ...
- 415 DOM 查找列表框、下拉菜单控件、对表格元素/表单控件进行增删改操作、创建元素并且复制节点与删除、 对表格操作、通用性和标准的事件监听方法(点击后弹窗效果以及去掉效果)
DOM访问列表框.下拉菜单的常用属性: form.length.options.selectedindex.type 使用options[index]返回具体选项所对应的常用属性:defa ...
- 整理c盘文件
清理大文件时,发现以下目录文件过大,删除后可以正常启动java程序,此目录应该是安装jdk时的缓存文件,可以删除 C:\Users\xxxx\AppData\LocalLow\Oracle\Java\ ...
- 用户态与内核态 & 文件流与文件描述符 简介【转】
转自:https://www.cnblogs.com/Jimmy1988/p/7479856.html 用户态和内核态 程序代码的依赖和调用关系如下图所示: Lib:标准ASCI C函数,几乎所有的平 ...