Advertisement
Guest User

Untitled

a guest
Oct 27th, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. // Example program
  2. #include <iostream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. int main(){
  9.  
  10.  
  11. int n = 79;
  12. const int k = 4;
  13. int a[k] = {1,2, 5, 20};
  14.  
  15.  
  16. const int INF=1000000000; // Значение константы }бесконечность}
  17. int F[n+1];
  18. F[0]=0;
  19. int m, i;
  20. for(m=1; m<=n; ++m) // заполняем массив F
  21. { // m - сумма, которую нужно выдать
  22. F[m]=INF; // помечаем, что сумму m выдать нельзя
  23. for(i=0; i<k; ++i) // перебираем все номиналы банкнот
  24. {
  25. if(m>=a[i] && F[m-a[i]]+1<F[m])
  26. F[m] = F[m-a[i]]+1; // изменяем значение F[m], если нашли
  27. } // лучший способ выдать сумму m
  28. }
  29.  
  30. if (F[n]==INF)
  31. cout<<"Требуемую сумму выдать невозможно"<<endl;
  32. else
  33. while(n>0)
  34. for(i=0;i<k;++i)
  35. if (F[n-a[i]]==F[n]-1)
  36. {
  37. cout<<a[i]<<" ";
  38. n-=a[i];
  39. break;
  40. }
  41.  
  42. return 0;
  43.  
  44.  
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement