NEFU563 鸭子知多少?【递归】

2024-06-15 05:08

本文主要是介绍NEFU563 鸭子知多少?【递归】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接:

http://acm.nefu.edu.cn/JudgeOnline/problemshow.php?problem_id=563


题目大意:
有个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又2只。这样经过了N个村子

剩下2只鸭子,问:他出发时所赶的鸭子共有多少只。


思路:

路过第i个村子剩的鸭子数 = 第i+1天刚开始赶的鸭子数 = (第i+1个村子卖完剩的鸭子数+2)*2。用

dfs(i)表示第i天剩的鸭子数,那么dfs(i) = (dfs(i+1)+2)*2。从第1天开始卖,则答案就是第0天还未

卖的时候剩的鸭子数,即dfs(0)。


AC代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
long long N;long long dfs(long long i)
{if(i == N)return 2;long long d;return d = (dfs(i+1)+2)*2;
}int main()
{while(~scanf("%d",&N)){printf("%lld\n",dfs(0));}return 0;
} 


这篇关于NEFU563 鸭子知多少?【递归】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062505

相关文章

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

C++ 重建二叉树(递归方法)

/*** struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* };*/#include <vector>class Solution {public:/*** 代码

大学生自救数据结构与算法(py实现)——01递归

目录 目录 递归 基本概念 工作原理 基本要素 优点 缺点 实现技巧 实例解析:计算阶乘 斐波那契数列 高效的斐波那契数列 python中的最大递归深度 二分查找 基本原理 性能分析 优化与变体 线性递归  元素序列的递归求和 二路递归 二路递归的基本概念 典型应用 工作原理 多重递归  示例:计算卡特兰数(Catalan Number) 尾递

对递归执行过程的简单描述

1. 分析代码 #include <stdio.h>void fun(int n){printf("1th - Level: %d Address: %d\n", n, &n);if(n < 3)fun(n+1);printf("2th - Level: %d Address: %d\n", n, &n);}int main(){fun(1);return 0;} 输出结果为:

vue+elementui搭建后台管理界面(5递归生成侧栏路由) vue定义定义多级路由菜单

有一个菜单树,顶层菜单下面有多个子菜单,子菜单下还有子菜单。。。 这时候就要用递归处理 1 定义多级菜单 修改 src/router/index.js 的 / 路由 {path: '/',redirect: '/dashboard',name: 'Container',component: Container,children: [{path: 'dashboard', name: '首

汉诺塔问题的java递归实现

import java.util.Scanner;public class Hanoi {int count=0;public void hanoi(int n,char A,char B,char C){ //把n个盘子移动到ccount++;if(n==1){System.out.println("盘子1从"+A+"移动到"+C); //再把最下边那个最大的盘子移到目标柱c上}el

二叉树的先序创建,先序,中序,后序的递归与非递归遍历,层次遍历,叶子结点数及树的深度

二叉树的先序创建,先序,中序,后序的递归与非递归遍历,层次遍历,叶子结点数及树的深度计算 输入格式:如   abd###ce##f##*   package tree;//二叉树的二叉链表实现import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;import java.util.Sta

递归 迭代 得到家谱树 子孙树

<?php $arr=array(array('id'=>'1','name'=>'吉林','parent'=>0),array('id'=>'2','name'=>'北京','parent'=>0),array('id'=>'3','name'=>'辽宁','parent'=>0),array('id'=>'4','name'=>'吉林市','parent'=>1),array('id'=>'5

「LeetCode」递归题目之第N个Tribonacci数

Tribonacci序列Tn定义: T0=0, T1=1, T2=1, n>=0时,Tn 3 = Tn Tn 1 Tn 2 限制条件是: 0<=n<=37, 32位整型。 我直接用C 撸了下面的代码, #include <iostream>using namespace std;class Solution {public:int tribonacci(int n) {if (n ==

递归实现十进制转二进制

#include<stdio.h>#include<stdlib.h>//输入一个十进制,自己写一个函数转换为二进制//10进制转2进制:方法是除以2取余,逆序排列 //如果想转换为 8进制,则把代码中的2改为8就OK //下面这个是递归!!! void change2(int num)//如果输入num为10 {if(num==0){return ; }else{/* 不能这样写