Problem Description
假设一堆由1分、2分、5分组成的n个硬币总面值为m分,求一共有多少种可能的组合方式(某种面值的硬币可以数量可以为0)。
Input
输入数据第一行有一个正整数T,表示有T组测试数据;
接下来的T行,每行有两个数n,m,n和m的含义同上。
Output
对于每组测试数据,请输出可能的组合方式数;
每组输出占一行。
Sample Input
2
3 5
4 8
Sample Output
1
2
解题思路:
方法一 : 拿到这个题目 , 三层循环就可以解决,但是时间复杂度太高 ,为O(n^3).此基础上,因为总量是确定的,确定了前两个的个数之后 , 第三个也能够确定 , 所以可以减少一层循环,时间复杂度也可以相对降低一点 , 为 O(n^2).
代码:
//方法一 直接枚举 , 时间复杂度为 O(n^2)
/*
#include <cstdio>
#include <cstring>