Advertisement
Guest User

gg

a guest
Jun 19th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. #include<string>
  2. #include<cstring>
  3. #include<stdio.h>
  4. #include<vector>
  5. #include <sstream>
  6. #include<iostream>
  7. int summ (int number){
  8. int sum = 0;
  9. while (number > 0){
  10. sum += number % 10;
  11. number = number / 10;
  12. }
  13. return sum;
  14. }
  15. std::string function(std::string &str){
  16. std::vector<int>numbers;
  17. int number = 0;
  18. for (size_t i = 0; i < str.length() + 1; ++i){
  19. if (str[i] != ' ' && str[i] != '\0') number *= 10;
  20. if (str[i] != ' ' && str[i] != '\0') number += (int)str[i] - 48;
  21. if (str[i] == ' ' || str[i] == '\0'){
  22. numbers.push_back(number);
  23. number = 0;
  24. }
  25. }
  26. int x;
  27.  
  28. for (size_t i = 0; i < numbers.size() - 1; i++) {
  29. for (size_t j = 0; j < numbers.size() - i - 1; j++) {
  30. if (summ(numbers[j]) > summ(numbers[j+1])) {
  31. x = numbers[j];
  32. numbers[j] = numbers[j+1];
  33. numbers[j+1] = x;
  34. }
  35. if (summ(numbers[j]) == summ(numbers[j + 1])){
  36. std::stringstream ss;
  37. std::stringstream tt;
  38. ss << numbers[j];
  39. tt << numbers[j+1];
  40. if (ss.str().compare(tt.str()) > 0){
  41. x = numbers[j];
  42. numbers[j] = numbers[j+1];
  43. numbers[j+1] = x;
  44. }
  45. }
  46. }
  47. }
  48. std::stringstream ss;
  49. for (size_t i = 0; i < numbers.size(); i++){
  50. ss << numbers[i];
  51. ss << " ";
  52. std::cout << numbers[i] << std::endl;
  53. }
  54. str = ss.str();
  55. return str;
  56. }
  57.  
  58. int main(int argc, char const *argv[]){
  59. std::string str = "2000 10003 1234000 44444444 9999 11 11 22 123";
  60. std::cout << function(str) << std::endl;
  61. return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement