Advertisement
zicaentu

Untitled

May 5th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.08 KB | None | 0 0
  1. /*
  2. Построить последовательность натуральных чисел следующим образом.
  3. Начальный элемент – натуральное число с четырьмя цифрами,
  4. которые не все равны между  собой. Мы переходим от данного члена
  5. последовательности к следующему по такому правилу.
  6. Пусть a, b, c, d – четыре цифры, представляющие десятичную
  7. запись данного числа. Расположим их в порядке убывания
  8. слева направо и получим первое число. Расположим их в обратном
  9. порядке и вычтем это второе число из первого.
  10. Это и есть искомый следующий член последовательности.
  11. */
  12. #include <stdio.h>
  13.  
  14. int main(int argc, char const *argv[])
  15. {
  16.     int number;
  17.     int a;
  18.     int b;
  19.     int c;
  20.     int d;
  21.     int temp;
  22.     int max, min;
  23.  
  24.     printf("Введите число:\n");
  25.     scanf("%d", &number);
  26.  
  27.  
  28.     for (int i = 0; i < 10; ++i)
  29.     {
  30.         /* Получаем цифры числа */
  31.         d = number % 10;
  32.         c = (number / 10) % 10;
  33.         b = (number / 100) % 10;
  34.         a = number / 1000;
  35.  
  36.         /* Сортировка методом пузырька */
  37.         /* 1 проход */
  38.         if (a > b)
  39.         {
  40.             temp = a;
  41.             a = b;
  42.             b = temp;
  43.         }
  44.         if (b > c)
  45.         {
  46.             temp = b;
  47.             b = c;
  48.             c = temp;
  49.         }
  50.         if (c > d)
  51.         {
  52.             temp = c;
  53.             c = d;
  54.             d = temp;
  55.         }
  56.         /* 2 проход*/
  57.         if (a > b)
  58.         {
  59.             temp = a;
  60.             a = b;
  61.             b = temp;
  62.         }
  63.         if (b > c)
  64.         {
  65.             temp = b;
  66.             b = c;
  67.             c = temp;
  68.         }
  69.         /* 3 проход*/
  70.         if (a > b)
  71.         {
  72.             temp = a;
  73.             a = b;
  74.             b = temp;
  75.         }
  76.  
  77.         /* Строим числа из цифр */
  78.         max = 1000 * d + 100 * c + 10 * b + a;
  79.         min = 1000 * a + 100 * b + 10 * c + d;
  80.  
  81.         /* Получаем новое число */
  82.         number = max - min;
  83.        
  84.         printf("%d\n", number);
  85.     }
  86.  
  87.  
  88.     return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement