#include<stdio.h>
void greedyMoney(int m[],int k,int n);
int main(void)
{
int money[] = {50,20,10,5,2,1};
int k;
k = sizeof(money)/sizeof(money[0]);
greedyMoney(money,k,125);
//system("PAUSE");
}/*
* m[]:存放可供找零的面值,降序排列
* k:可供找零的面值种类数
* n:需要找零数
*/
void greedyMoney(int m[],int k,int n)
{
int i;
for(i=0;i<k;i++)
{
while(n>=m[i] && n>0)
{
printf("%d.",m[i]);
n = n-m[i];
}
}
printf("\n");
}
另外一种精简形式易懂的(另外,钱多得花不完的话类型可以声明为long long类型):
#include<stdio.h>
int main(){
int money;
printf("请输入你要找回的零钱总数:");
scanf("%d",&money);
printf("5分的硬币个数:%d\n2分的硬币个数:%d\n1分的硬币个数:%d",money/5,money%5/2,money%5%2);
}