题目描述
假设一堆由1分、2分、5分组成的n个硬币总面值为m分,求一共有多少种可能的组合方式(某种面值的硬币可以数量可以为0)。
输入
输入数据第一行有一个正整数T,表示有T组测试数据。接下来的T行,每行有两个数n,m,n和m的含义同上。
输出
对于每组测试数据,请输出可能的组合方式数,每组输出占一行。
样例输入
2
3 5
4 8
样例输出
1
2
暴力求解法,我也想不到什么好的了,要是有大佬知道了好的方法欢迎指点一下!!!
#include<iostream>
using namespace std;
int main(){
int n,m,i,j,k,s,t;
cin>>t;
while(t--){
s=0;
cin>>n>>m;
for(i=0;i<=n;i++){
for(j=0;j<=n-i;j++){
for(k=0;k<=n-i-j;k++){
if((i+j+k==n)&&(i+2*j+5*k==m)){
s+=1;
}
}
}
}
cout<<s<<endl;
}
return 0;
}