C语言求把100元换成20元,10元,5元的纸币.要求每种纸币至少有一张。以及最少张数

求最少张数:
#include 
#include 
 void main(void) 
{ int n5,n10,n20;
  int m5,m10,m20;
  int min,count=0
  for (n5=0;n5<20;n5++)
  {
   for (n10=0;n10<10;n10++)
   {
      for (n20=0;n20<5;n20++)
     {
       if (n5 * 5 + n10 * 10 + n20 * 2  0  ==100)
       {
           if(count==0)
           {
             min=n5+n20+n10;
             count++;
             m5=n5;m10=n10;m20=n20;
           }
           else if(min>n5+n20+n10)
           {
             min=n5+n20+n10;
             m5=n5;m10=n10;m20=n20; 
           }
        }
      printf("$5--%d, $10--%d, $20--%d\n",n5,n10,n20);
     }
   }
  }
}


 循环遍历计算

。设20,10,5 的张数 n20,n10,n5,至少有一张,n20,n10,n5 循环初值从 1 起如果 n20 * 20 + n10 * 10 + n5 * 5 == 100 则为解。

#include 
#include 
 void main(void) 
{ int n5,n10,n20;
  for (n5=1;n5<20;n5++)
  {
   for (n10=1;n10<10;n10++)
   {
      for (n20=1;n20<5;n20++)
     {
     if (n5 * 5 + n10 * 10 + n20 * 2  0  ==100)
      printf("$5--%d, $10--%d, $20--%d\n",n5,n10,n20);
     }
   }
  }
}


 
  


 

 

你可能感兴趣的:(算法分析)