fork download
  1. #include <iostream>
  2. #include <limits>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. int main()
  8. {
  9. unsigned int total = 12345;
  10. unsigned int payed = 130000;
  11. unsigned int change = payed - total;
  12.  
  13. unsigned int base = numeric_limits<unsigned int>::max()/2 + 1;
  14.  
  15. while(base > 0)
  16. {
  17. unsigned int value = change & base;
  18. if (value != 0)
  19. cout << 1 << ' ' << base << "s ";
  20. base = base >> 1;
  21. }
  22.  
  23. return 0;
  24. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
1 65536s 1 32768s 1 16384s 1 2048s 1 512s 1 256s 1 128s 1 16s 1 4s 1 2s 1 1s