C语言贪心算法,关于零钱取整问题

来源:互联网 发布:unity3d ui教程 编辑:程序博客网 时间:2024/05/29 09:28
#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");}

另外一种精简形式易懂的:

#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);}

这里写图片描述

1 0
原创粉丝点击