整数划分
来源:互联网 发布:知乎 李云迪前妻 编辑:程序博客网 时间:2024/04/27 23:38
#include <stdio.h>typedef unsigned long long ull;ull idiv(size_t n , size_t m) {//integer divide(整数划分) //返回将整数n划分成最大加数不超过m的划分个数if ( 1 == m )//最大加数不超过1时只有一种,即1 + 1 + 1...... //递归终止条件return (ull)1;if ( m > n )//最大加数实际不能大于整数本身 //主要为最后一个return语句服务return idiv(n , n);if ( n == m )//即求问题的解,等于整数自身一种划分和最大加数不大于自身减1时的结果之和return (ull)1 + idiv(n , n - 1);return idiv(n , m - 1) + idiv(n - m , m);//后者表示当最大加数为m时n-m的划分,注意,该划分的最大加数不得大于m,因为m为原整数的划分的最大加数}int main() {size_t n;scanf("%u" , &n);printf("%llu\n" , idiv(n , n));return 0;}
测试数据(两则,执行两遍):
6 input
11 output
10 input
42 output
- 整数划分
- 整数划分
- 整数划分
- 整数划分
- 整数划分
- 整数划分
- 整数划分
- 整数划分
- 整数划分
- 整数划分
- 整数划分
- 整数划分
- 整数划分
- 整数划分
- 整数划分:
- 整数划分
- 整数划分
- 整数划分
- java.lang.OutOfMemoryError: Java heap space 的解决
- ubuntu-server-12.04.2开启root图形界面登录
- 监听器控制程序lsnrctl跟踪trace file
- Android 让界面不被弹出的键盘挤上去
- 限制鼠标活动区域
- 整数划分
- Discuz! 中导出数据为 CSV 格式文件需要注意的事项
- Android开发指南中文版
- mysql 短连接压测遇到的问题及查找解决思路[终于找到原因了]
- Imp数据配置
- POJ_3101_Astronomy
- 非Java实现MapReduce
- QQ2013协议分析(一)准备工作
- NFSv 4.0 的变化