当前位置: 首页 > news >正文

TZOJ 1376 母牛的故事(递推和递归)

答案1(递推):


#include<stdio.h>
int main() 
{int n=0,i=0;int a[55] = { 0,1,2,3,4 };   //数组下标就相当于过了几年,以第四年母牛生出的第一只小母牛成年为周期,初始化前四年的值while (scanf("%d", &n) == 1 && (n >= 0 && n < 55))   //使输入符合if (n == 0)   //如果输入0break;     //跳出循环else    //如果输入不是0{if (n <= 4)   //如果在四年内,就没必要递推printf("%d\n", a[n]);   //直接打印母牛个数else     //如果超过四年,就要用递推了{for (i = 5; i <= n; i++)   //从最小递推年数第5年开始,循环至n年(要用<=,不然第5年就直接没算了){a[i] = a[i - 1] + a[i - 3];    //母牛递推规律(推导解释在文末)if (i == n)    //如果到了输入的n年{a[n] = a[i];   //将此时的个数赋值给输出printf("%d\n", a[n]);   //打印第n年母牛的个数}}}} return 0;
}

答案2(递归):

# include<stdio.h>
int fun(int n)   //定义母牛个数的函数
{if (n == 1)    //第一年的个数return 1;else if (n == 2)   //第二年的个数return 2;else if (n == 3)    //第三年的个数return 3;else if (n == 4)    //第四年的个数return 4;else     //超出四年{return fun(n - 1) + fun(n - 3);   //用递归母牛的规律公式(推导解释在文末)}
}
int main()
{int n=0;while (scanf("%d", &n) == 1 && (n >= 0 && n < 55))   //使输入符合题目要求if (n == 0)   //如果n=0{break;   //跳出循环}else   //如果n不为0printf("%d\n", fun(n));   //调用上面函数,然后打印return 0;
}

关于本题的知识点以及需要理解的点:

1.第一年母牛是不生的!!!也就是说从第二年母牛才开始生,这是要理解题目的点(大概是题目里每年年初是暗示吧)

2.

母牛个数规律推导:

首先:今年母牛的个数等于去年母牛的个数+今年新生的小母牛个数,然后去年母牛的个数等于去年的去年母牛的个数+去年新生的小母牛个数……直到第四年只有初始母牛在生小母牛

所以

f[i]=今年母牛的个数
f[i-1]=去年母牛的个数
f[i-3]=3年前母牛的个数=今年成年的母牛的个数(因为3年前加上本年等于4年)=今年能够生小母牛的母牛个数(即满4年的成年母牛的个数)=今年新生的小母牛个数
f[i]今年母牛的个数=f[i-1]去年母牛的个数+f[i-3]今年新生的小母牛个数 
故f[i] = f[i - 1] + f[i - 3] 

3.递推和递归的区别

递推:本题求第n年的牛总数,已知第一年为“1”头,进而推出第二年“2”头,第三年“3”头,“4”头,“6”头,“9”头……

递归:要想求第“n”年的牛的总数,只要知道“n-1”和“n-3”年的牛的总数,再依次向前推
所以递推和递归是一个正向思维一个逆向思维

4.在TZOJ上本题只能用递推,递归会超时

相关文章:

TZOJ 1376 母牛的故事(递推和递归)

答案1&#xff08;递推&#xff09;&#xff1a; #include<stdio.h> int main() {int n0,i0;int a[55] { 0,1,2,3,4 }; //数组下标就相当于过了几年&#xff0c;以第四年母牛生出的第一只小母牛成年为周期&#xff0c;初始化前四年的值while (scanf("%d", …...

五种多目标优化算法(MOPSO、MOAHA、NSGA2、NSGA3、MOGWO)求解微电网多目标优化调度(MATLAB)

一、多目标优化算法简介 &#xff08;1&#xff09;多目标粒子群优化算法MOPSO 多目标应用&#xff1a;基于多目标粒子群优化算法MOPSO求解微电网多目标优化调度&#xff08;MATLAB代码&#xff09;-CSDN博客 &#xff08;2&#xff09;多目标人工蜂鸟算法&#xff08;MOAHA…...

01_原理-事件循环

01_原理-事件循环 文章目录 01_原理-事件循环一、浏览器的进程模型①&#xff1a;何为进程&#xff1f;②&#xff1a;何为线程&#xff1f;③&#xff1a;浏览器有哪些进程和线程&#xff1f; 二、渲染主线程是如何工作的&#xff1f;三、若干解释①&#xff1a;何为异步&…...

Redis的性能,哨兵模式,集群,

Redis的性能管理; redis的数据保存在内存中 redis-cli info memory redis内存使用info memory命令参数解析 used_memory:236026888 由 Redis 分配器分配的内存总量&#xff0c;包含了redis进程内部的开销和数据占用的内存&#xff0c;以字节&#xff08;byte&#xff09…...

如何选择共模噪声滤波器

在当前电子产品中&#xff0c;绝大多数的高速信号都使用地差分对结构。 差分结构有一个好处就是可以降低外界对信号的干扰&#xff0c;但是由于设计的原因&#xff0c;在传输结构上还会受到共模噪声的影响。 共模噪声滤波器就可以用于抑制不必要的共模噪声&#xff0c;而不会对…...

Python与设计模式--模板模式

23种计模式之 前言 &#xff08;5&#xff09;单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、&#xff08;11&#xff09;策略模式、责任链模式、命令模式、中介者模…...

LoadRunner自动化测试工具的应用

目录 第一部分:Loadrunner的简介 1.1 安装注意事项 1.2 协议的选择或者 VUSER 类型的选取 1.3 LR 的基本原理 1.4 测试脚本录制/分配所遵循的几个原则 第二部分:录制脚本 2.1 录制脚本前需要理解的几个基本概念 2.1.1 事务(Transaction) 2.1.2 集合点(Rendezvous) 2.1…...

工厂模式是一种创建对象的设计模式,使用工厂类来创建对象,而不是直接使用 new 关键字来创建对象。

文章目录 示例代码virtual std::string Operation() const = 0;如何理解std::string Operation() const override {这句如何理解?Factory 类包含一个静态方法 CreateProduct,它根据传入的类型参数来创建并返回具体的产品实例。这句话理解?std::unique_ptr<Product> pr…...

NET MVC中使用Element-Plus框架编写组件

一、目的 在NET MVC中使用Element-Plus编写可重复使用的组件。 二、准备工作 2.1 NET MVC项目 2.2 MVC项目中使用Element-Plus框架。不熟悉的可以参考此文章&#xff1a; NET MVC中如何使用Element-Plus-CSDN博客 三、组件编写 3.1、新建一个MVC的部分视图页面&#xff…...

在线文库系统 转码功能源代码展示 支持文档在线预览查阅功能

1、支持 pdf,doc,docx,ppt,pptx,txt,xlsx,xls,csv,zip,epub,ai,psd 格式的文件 2、文库系统的上传界面&#xff0c;用户可以进行上传自己的文件&#xff0c;然后自定义文档售价&#xff0c;来赚取金额。 3、文库系统的部分代码披露&#xff1a; <template><div clas…...

Linux /etc/shadow密码生成操作示例

一. 前言 之前学习过Linux文件系统下/etc/shadow里面保存着各个用户名的密码&#xff0c;并且密码是通过MD5算法加盐的方式生成的。但是一直没有自己真正动手生成过&#xff0c;今天&#xff0c;就来自己动手写代码生成下。 二. 代码验证/etc/shadow中密码 1. 通过passwd命令生…...

seata集成springboot的一些错误小计

1 seata依赖没找到 dependencies.dependency.version for com.alibaba.cloud:spring-cloud-starter-alibaba-seata:jar is missing. line 126, column 21错误原因:未指定具体的seata版本 解决 <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-st…...

springmvc(基础学习整合)

SpringMVC是Spring框架提供的构建Web应用程序的全功能MVC模块。 在SpringMVC的各个组件中&#xff0c;处理器映射器、处理器适配器、视图解析器称为SpringMVC的三大组件。 springMVC基本介绍&#xff1a; http://t.csdnimg.cn/TOzw9 MVC是一种设计思想&#xff0c;将一个应…...

采集软件大全-全网免费的采集软件大全

采集软件大揭秘&#xff1a;从排名到任意网站采集的全方位解读 在数字时代&#xff0c;信息是黄金&#xff0c;而采集软件就是那把能够淘金的工具。无论是市场调研、竞品分析还是SEO优化&#xff0c;采集软件都扮演着不可或缺的角色。在这个领域里&#xff0c;有许多选择&…...

世微AP5125 DC-DC降压恒流 LED车灯电源驱动IC SOT23-6

产品描述 AP5125 是一款外围电路简单的 Buck 型平均电流检测模式的 LED 恒流驱动器&#xff0c;适用于 8-100V 电压范围的非隔离式大功率恒流 LED 驱动领域。芯片采用固定频率 140kHz 的 PWM 工作模式&#xff0c; 利用平均电流检测模式&#xff0c;因此具有优异的负载调整 率…...

STC15-串口通信打印输出数据printf函数与sprintf函数

STC15-串口通信打印输出数据printf函数与sprintf函数 1.打印输出数据有二种printf函数与sprintf函数&#xff0c;不同之处有&#xff1a;&#xff08;1&#xff09;函数的声明不同&#xff08;2&#xff09;函数的功能不同&#xff08;3&#xff09;用法举例 该问题引用百度知道…...

Android 11.0 默认开启USB调试功能

Android 11.0 默认开启USB调试功能 近来收到项目反馈需求想要默认开启USB调试功能&#xff0c;默认开启USB调试功能主要是在UsbDebuggingActivity.java文件中实现&#xff0c;具体修改参照如下&#xff1a; /vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/and…...

单片机AVR单片机病房控制系统设计+源程序

一、系统方案 设计一个可容8张床位的病房呼叫系统。要求每个床位都有一个按钮&#xff0c;当患者需要呼叫护士时&#xff0c;按下按钮&#xff0c;此时护士值班室内的呼叫系统板上显示该患者的床位号&#xff0c;并蜂鸣器报警。当护士按下“响应”键时&#xff0c;结束当前呼叫…...

C语言——多种方式打印出1000之内的所有的“水仙花数”

所谓水仙花数,是指一个3位数,其各位数字立方和等于该数本身。水仙花数是指一个三位数&#xff0c;它的每个位上的数字的立方和等于它本身。例如&#xff0c;153是一个水仙花数&#xff0c;因为1^3 5^3 3^3 153。 方法一 #define _CRT_SECURE_NO_WARNINGS 1#include <std…...

.net 8 发布了,试下微软最近强推的MAUI

先看下实现的效果&#xff1a; 下面发下XAML文件&#xff1a; <?xml version"1.0" encoding"utf-8" ?> <ContentPage xmlns"http://schemas.microsoft.com/dotnet/2021/maui"xmlns:x"http://schemas.microsoft.com/winfx/2009/…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...