题目链接:
https://acm.bnu.edu.cn/v3/statments/52297.pdf
题意:
分别有a1,a2,a3个一元,两元,3元的硬币。问可以组成多少不同的钱数?
分析:
分类讨论即可,不过要用手推很长时间。
我们没用long long,很早就写出来了 ,WA了n次。。。。
AC代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
long long a1,a2,a3,ans;
while(scanf("%lld%lld%lld",&a1,&a2,&a3)!=EOF)
{
if(a1 && a2 && a3)
ans = a1+2*a2+3*a3;
else if(a1 && a2)
{
ans = 2*a2+a1;
}
else if(a2 && a3)
{
if(a2==1) ans = 2*a2 + 3*a3-1-a3;
else ans = ans = 2*a2 + 3*a3 -2;
}
else if(a1 && a3)
{
if(a1==1) ans = 2*a3+1;
else ans = 3*a3+a1;
}
else ans = a1+a2+a3;
printf("%lld\n",ans);
}
return 0;
}