【题解】桐桐的递归函数
题目描述
桐桐经常找一些很有趣的数学书来阅读以增长自己的数学知识。
一天,他偶然发现一个递归函数w(a,b,c)有以下性质:
如果a≤0或b≤0或c≤0,就返回值1;
如果a>20或b>20或c>20,就返回w(20,20,20);
其它别的情况就返回w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1)。
桐桐想通过编程求出这个简单的递归函数的值,可是他在编程的时候遇到了一些困难。你能帮助他吗?
输入输出格式
输入格式:
一行,a,b,c三个整数,-50≤a,b,c≤50。
输出格式:
a,b,c三个整数所对应的w(a,b,c)函数的值。要求以w(a, b, c)=函数的值来输出。
输入输出样例
1 1 1
2
50 50 50
1048576做法:递归、记忆化递归用一个三维数组储存函数w(a,b,c)的值,把它分解为若个子问题,遇到特别大的值时就把它分解为若干子问题的值,就可以很快求出答案具体程序如下:
#include<iostream> using namespace std; int num[55][55][55]; int w(int a,int b,int c) {if(a<=0||b<=0||c<=0) return 1;if(a>=20||b>=20||c>=20) return 1048576;else{if(num[a][b][c]!=0) return num[a][b][c];else return num[a][b][c]=w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1);} } int main() {int x,y,z;cin>>x>>y>>z;cout<<w(x,y,z); }
转载于:https://www.cnblogs.com/2021-yanghaoran/p/10716695.html
【题解】桐桐的递归函数相关推荐
- 【递归】桐桐的递归函数
桐桐的递归函数 题目大意: 有一个函数,让你照着打 原题: 题目描述 桐桐经常找一些很有趣的数学书来阅读以增长自己的数学知识.一天,他偶然发现一个递归函数w(a,b,c)有以下性质: 如果a≤0或b≤ ...
- 第2课 桐桐的运输方案《聪明人的游戏 信息学探秘.提高篇》
/* 第2课 桐桐的运输方案(transp)-2020-02-232019 CSP-J/S第一轮各省分数线统计与分析(含浙江省) http://www.jzb.com/bbs/thread-75534 ...
- vijos1325 桐桐的糖果计划
Description 桐桐是一个快乐的小朋友,他生活中有许多许多好玩的事,让我们一起来看看吧-- 桐桐很喜欢吃棒棒糖.他家处在一大堆糖果店的附近. 但是,他们家的区域经常出现塞车.塞人等情况,这导致 ...
- 三人分糖果c语言,C语言顺序结构
-C语言桐桐分糖果问题(附带源码)
妈妈给了桐桐一盒糖果,第一天桐桐分糖果的一半给弟弟,自己吃了 5 颗:第二天有好朋友悦悦来家里玩,桐桐又把剩下的糖果分一半给悦悦,自己吃了 4 颗:第三天桐桐吃了剩下的糖果的一半还多 1 颗后,数了数 ...
- 第6课 桐桐的砝码(tfama)
[问题描述] 桐桐有2g.3g.5g.7g.10g.15g的砝码各有一枚.她想知道用这些砝码能称出多少种不同的质量. [输出格式] 只有一个数,表示能称出的不同质量的个数. C++代码 ...
- 桐桐的新闻系统(argus)
题目 桐桐为期末的计算机作业设计了一套新闻系统,他把这套系统称为Argus. 使用这套系统的用户可以向这套系统注册,然后这套系统就会以用户要求发送新闻的时间间隔向用户发送一次新闻. 向Argus注册的 ...
- 桐桐的计算(第三章第1课)
这个周末数学老师布罟了一道有趣的题目,意思是:九头鸟(传说中的一种怿鸟,它有九个头,两只脚)鸡和兔子关在一个笼子里.数数它们的头正好是100 个,数数它们的脚也正好是100只.老师让桐桐编程计算其中九 ...
- 桐桐去购物(第三章第1课)
桐桐周末陪妈妈到市场购物.她和妈妈来到一个买鸡的摊位,发现鸡的价格有三种:公鸡每只5元钱,母鸡每只3元钱,小鸡3只1元钱.妈妈就给桐桐出了一道计算题:如果用n元钱买m只鸡,问公鸡.母鸡和小鸡可以各买多 ...
- 问题 J: 【分治】猪八戒吃西瓜,【分治】桐桐查单词(map的应用)
妙笔难书一纸愁肠,苍白的誓言,终究抵不过岁月的遗忘. 题目描述 有一天,贪吃的猪八戒来到了一个大果园,果园里有n(n≤100000)个大西瓜,每个西瓜 的质量不大于长整型(longint),并且每个西 ...
- 聪明人的游戏提高篇:第二课例题:桐桐的数学难题(fen)
自己看参考程序!! #include <iostream> #include <cstdio> using namespace std; int n,t,m,k,i; int ...
最新文章
- 贪心 双指针----Codeforces Round #727 (Div.2) D. PriceFixed
- 第七讲:用户和用户组管理
- QML实现酷炫的 Cover Flow 效果(PathView)
- 页面添加复制代码功能
- [Redux/Mobx] 在redux中,什么是action?
- 迷宫回溯问题分析和实现
- java 控制台输入字符串_Java控制台输入字符串及字符串比较
- iOS6,7,8,9新特性汇总
- 四步破解大亚DP607超级密码,别的光猫可能也适用!
- C语言实现两个数值互换
- NB-IoT开发都涉及什么
- 我复盘了自己的工作,总结了这个跨境支付产品经理的成长经验给你
- 澳洲PHP工作,怀爱伦澳洲行_在新西兰的工作
- 如何在Excel中快速调整列宽
- Android Studio 获取Shal值
- P4199 万径人踪灭 [Manacher + FFT]
- python使用126发邮件代码
- Win11找不到xinput1_3.dll怎么办?
- MusicXML 3.0 (2) - 调号
- 段岳衡黑白摄影作品欣赏
热门文章
- 关于windows10在学习爬虫是用到appium配置java的jdk出现了,javac不是内部命令的解决方法(¥57)
- 抽奖活动啦!5本SpringMVC+MyBatis相关、3本Android Studio相关、6本Kafka相关
- AndroidStudio报错Transform output file D:\android\RfidDemo\app\libs\RFID_lib.jar does not exist.
- 基于CH340G的STC单片机一键下载电路
- 测试环境的搭建和维护_软硬件测试环境
- allegro不规则焊盘制作
- android调用文件管理打开某个路径,android – 在文件管理器中打开特定文件夹以供查看...
- 给ssh服务添加谷歌双重认证
- 数学函数模块math
- 由于达到了总登录时间限制,远程回话被结束。这个限制是服务器管理员或网络策略设置的。