整数划分(二)+ nyoj176
来源:互联网 发布:360免费网络加速器 编辑:程序博客网 时间:2024/05/17 16:44
#include<stdio.h>int m,n;int count;void recur(int num,int c,int qian){int i;if(num<0)return;if(num==0){if(c == n)count++;return;}for(i=num;i>=1;i--){if(i<=qian || c==0)recur(num-i,c+1,i);}}int main(){int T;scanf("%d",&T);while(T--){count =0;scanf("%d %d",&m,&n);recur(m,0,0);printf("%d\n",count);}return 0;
题目176
整数划分(二)
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
把一个正整数m分成n个正整数的和,有多少种分法?
例:把5分成3个正正数的和,有两种分法:
1 1 3
1 2 2
输入
第一行是一个整数T表示共有T组测试数据(T<=50)
每组测试数据都是两个正整数m,n,其中(1<=n<=m<=100),分别表示要拆分的正数和拆分的正整数的个数。
输出
输出拆分的方法的数目。
样例输入
2
5 2
5 3
样例输出
2
2
#include <stdio.h>
int fun(int n,int m)
{
if(n < m)
return 0;
if(n == m)
return 1;
if(m == 1)
return 1;
if(n > m)
return fun(n-1,m-1) + fun(n-m,m);
}
int main(void)
{
int ncase,n,m;
scanf("%d",&ncase);
while(ncase--)
{
scanf("%d%d",&n,&m);
printf("%d\n",fun(n,m));
}
return 0;
}
#include<stdio.h>
int m,n;
int count;
void recur(int num,int c,int qian)
{
int i;
if(num<0)
return;
if(num==0)
{
if(c == n)
count++;
return;
}
for(i=num;i>=1;i--)
{
if(i<=qian || c==0)
recur(num-i,c+1,i);
}
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
count =0;
scanf("%d %d",&m,&n);
recur(m,0,0);
printf("%d\n",count);
}
return 0;
}
- 整数划分(二)+ nyoj176
- NYOJ176 整数划分(二)(DP,DFS)
- 整数划分(二)
- 整数划分(二)
- 整数划分(二)
- NYOJ - 整数划分(二)
- nyoj整数划分(二)
- nyoj整数划分(二)
- NYOJ 整数划分(二)
- nyoj 整数划分(一)(二)
- nyoj 176 整数划分(二)
- 南阳 oj 176 整数划分(二)
- NYOJ 题目176整数划分(二)
- nyoj 176— 整数划分(二)
- nyoj 176 整数划分(二)【dp】
- NYOJ 176 整数划分(二)
- NYOJ 176 整数划分(二)(DP)
- NYOJ 176 整数划分(二)
- reverse(int x)整数取反函数
- dom4j生成xml文件
- Linux学习记录
- 天气预报接口API
- SQL 语言对数据库的操作(一)
- 整数划分(二)+ nyoj176
- STM32F10x 学习笔记8(USART实现串口通讯 DMA 方式)
- STM32的时钟管理分析
- 利用Win7合成器消除网页垃圾声音【老牌系统】
- HDU 1538 - A Puzzle for Pirates(海盗分金)
- 快速配置maven环境
- PHP面向对象之重写与重载
- 已知二叉树前序中序求后序
- 素数 + nyoj169