fork download
  1. #include <iostream>
  2. #include <map>
  3. #include <sstream>
  4. #include <set>
  5.  
  6. #define COUNT(a) (sizeof(a) / sizeof((a)[0]))
  7.  
  8. void add_digits(std::set<int> &digits, int n)
  9. {
  10. if (n == 0) {
  11. digits.insert(0);
  12. } else {
  13. while (n) {
  14. digits.insert(n % 10);
  15. n /= 10;
  16. }
  17. }
  18. }
  19.  
  20. int main()
  21. {
  22. int nums[] = { 709, 8, 70, 71, 5, 7 };
  23.  
  24. std::set<int> digits;
  25. for (int i = 0; i < COUNT(nums); i++)
  26. add_digits(digits, nums[i]);
  27.  
  28.  
  29. std::cout << "The largest number is ";
  30. for (std::set<int>::reverse_iterator it = digits.rbegin(); it != digits.rend(); it++)
  31. std::cout << *it;
  32.  
  33. std::cout << std::endl;
  34. return 0;
  35. }
Success #stdin #stdout 0s 3028KB
stdin
Standard input is empty
stdout
The largest number is 987510