硬币组合
时间: 1ms 内存:128M
描述:
假设一堆由1分、2分、5分组成的n个硬币总面值为m分,求一共有多少种可能的组合方式(某种面值的硬币可以数量可以为0)。
输入:
输入数据第一行有一个正整数T,表示有T组测试数据;
接下来的T行,每行有两个数n,m,n和m的含义同上。
输出:
对于每组测试数据,请输出可能的组合方式数;
每组输出占一行。
示例输入:
1
5 9
示例输出:
2
提示:
参考答案(内存最优[1092]):
#include<stdio.h>
int main()
{
int m,n,x,s,c,i,j;
scanf("%d",&x);
while(x--)
{
c=0;
scanf("%d%d",&n,&m);
s=5*n-m;
for(i=0;i<=n;i++)
{
for(j=0;j<=n;j++)
{
if(4*i+3*j==s && n-i-j>=0)
c++;
}
}
printf("%d\n",c);
}
return 0;
}
参考答案(时间最优[0]):
#include<stdio.h>
int main()
{
int m,n,x,s,c,i,j;
scanf("%d",&x);
while(x--)
{
c=0;
scanf("%d%d",&n,&m);
s=5*n-m;
for(i=0;i<=n;i++)
{
for(j=0;j<=n;j++)
{
if(4*i+3*j==s && n-i-j>=0)
c++;
}
}
printf("%d\n",c);
}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。