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

递归函数(c++题解)

题目描述

对于一个递归函数w(a, b, c)。

如果a <= 0 or b <= 0 or c <= 0就返回值1。

如果a > 20 or b > 20 or c > 20就返回W(20,20,20)。

如果a < b并且b < c 就返回w(a, b, c − 1) + w(a, b − 1, c − 1) − w(a, b − 1, 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)

这是个简单的递归函数,但实现起来可能会有些问题。

输入格式

会有若干行.每行三个数,表示a, b, c。并以−1, −1, −1结束

输出格式

输出若干行,

样例

样例输入

复制1 1 1
2 2 2
-1 -1 -1

样例输出

复制w(1,1,1)=2
w(2,2,2)=4

数据范围与提示

|a|, |b|, |c| < 30

_____________________________________________________________________________

写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

_____________________________________________________________________________

#include<bits/stdc++.h>
using namespace std;
long long a,b,c,p[65][65][65];
long long w(long long x,long long y,long long z){if(x<=0 || y<=0 || z<=0){return 1;}else if(x>20 || y>20 || z>20){return w(20,20,20);}else if(p[x][y][z]!=0){return p[x][y][z];}else if(x<y && y<z){p[x][y][z]=w(x,y,z-1)+w(x,y-1,z-1)-w(x,y-1,z);return p[x][y][z];}else{p[x][y][z]=w(x-1,y,z)+w(x-1,y-1,z)+w(x-1,y,z-1)-w(x-1,y-1,z-1);return p[x][y][z];}
}
int main(){while(cin>>a>>b>>c){if(a==-1&&b==-1&&c==-1)return 0;long long n=w(a,b,c);printf("w(%lld,%lld,%lld)=%lld\n",a,b,c,n);}return 0; 
}

http://www.lryc.cn/news/310789.html

相关文章:

  • Qt将Unicode转换成UTF8中文
  • HTTP 的 multipart 类型
  • 【NR 定位】3GPP NR Positioning 5G定位标准解读(二)
  • 为何代理IP的稳定性不如有线IP?
  • 【c++】 string类的模拟实现
  • transformer--transformer模型构建和测试
  • 从0到1全流程使用 segment-anything
  • Window系统部署Splunk Enterprise并结合内网穿透实现远程访问本地服务
  • Windows服务器:通过nginx反向代理配置HTTPS、安装SSL证书
  • LeetCode67 二进制求和
  • python | 列表,元组,字符串,集合,字典
  • 稀疏图带负边的全源最短路Johnson算法
  • oracle基础体系
  • k8s运维问题整理
  • 设计模式(一)设计模式分类和六大设计原则
  • git的学习与使用(笔记最全)
  • windows环境下Grafana+loki+promtail入门级部署日志系统,收集Springboot(Slf4j+logback)项目日志
  • 学习python时一些笔记
  • php基础学习之错误处理(其二)
  • 云计算 2月28号 (linux的磁盘分区)
  • demo型xss初级靶场
  • 【推荐算法系列十八】:DSSM 召回算法
  • CNAN知识图谱辅助推荐系统
  • 大数据经典面试例题
  • 软考56-上午题-【数据库】-数据库设计步骤2
  • 抖店入驻费用是多少?新手入驻都有哪些要求?2024费用明细!
  • 2024东南大学553复试真题及笔记
  • 编程笔记 html5cssjs 096 JavaScript 前端开发(完结)
  • 案例介绍:信息抽取技术在汽车销售与分销策略中的应用与实践
  • 几种常用的企业加密文件传输方式,最后一种更佳!