网站页面
当前课程
成员
常规
第一章 C++语言入门
第二章 基本结构
第三章 实战演习
第四章 数组
第五章 阶段检测1
第六章 函数
第八章 指针
第九章 结构体
第十章 进制与位运算
第十一章 STL
递归函数(附加题)
成绩 | 100 | 开启时间 | 2018年10月17日 星期三 21:40 |
折扣 | 0.8 | 折扣时间 | 2018年10月17日 星期三 21:40 |
允许迟交 | 是 | 关闭时间 | 2018年10月17日 星期三 21:40 |
输入文件 | dg.in | 输出文件 | dg.out |
【上机实践】递归函数(dg.cpp)
对于一个递归函数w(a,b,c)来说:
如果a≤0 或者 b≤0 或者 c≤0就返回值1;
如果a>20 或者 b>20 或者 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)。
以w(30,-1,0)为例,它既满足条件1又满足条件2,则优先按条件1计算,故答案为1。
【输入格式】
输入有多组数据,每组数据一行,均为整数。
保证输入的数在-9223372036854775808~9223372036854775807之间。
输入以-1,-1,-1表示结束。
【输出格式】
每行输出一个结果。
【输入样例】
1 1 1
2 2 2
-1 -1 -1
【输出样例】
2
4