想法:除去1、2、5各有一枚的情况下讨论,即n-8。发现在为1、2、3的情况下是特殊值,大于3的情况下(从4开始),对应的换算方法可以进行拆分例如:6=1+(1+(1+3)) 6对应换的算方法为1+1+1+2=5,即大于3开始,对应的换算方法=对应数-1。
#include <stdio.h>
int count(int n) {
int a = n - 8;
switch (a) {
case 0:return 1; break;
case 1:return 1; break;
case 2:return 2; break;
case 3:return 2; break;
default:return a - 1; break;
}
}
int main()
{
printf("Input money: ");
int n;
scanf("%d", &n);
printf("count=%d", count(n));
return 0;
}