Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.85 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. /*Дана последовательность натуральных чисел {Aj}j=1...n (n<=10000).
  4. Удалить из последовательности числа произведение цифр которых больше 50,
  5. а среди оставшихся продублировать числа, содержащие цифру 3, но не содержащие цифру 1.*/
  6. // Shpilevaya Ksenia 9 lab: 41
  7. int pr_of_digits(int z)
  8. {
  9.    int resid;
  10.    int prDigit = 1;
  11.    while (z > 0)
  12.    {
  13.       resid = z % 10;
  14.       prDigit = prDigit * resid;
  15.       z = z / 10;
  16.    }
  17.    return prDigit;
  18. }
  19.  
  20. bool three_not_one(int x)
  21. {
  22.    int one = 0;
  23.    int resid = 0;
  24.    int three = 0;
  25.    bool check = false;
  26.    while (x > 0) {
  27.       resid = x % 10;
  28.       if(resid == 3) three = three + 1;
  29.       if(resid == 1) one = one + 1;
  30.       x = x / 10;
  31.    }
  32.    if((three > 0) && (one == 0)) check = true;
  33.    return check;
  34. }
  35.  
  36.     int main()
  37.     {  
  38.         int n,i,j,k,null;
  39.         int masElements[20000];
  40.         scanf("%d", &n);
  41.         for(i=0; i<n; i++)
  42.             scanf("%d", &masElements[i]);
  43.        
  44.         for(i=0; i<n; i++)
  45.             if(pr_of_digits(masElements[i]) > 50)
  46.                 {
  47.                     for(k = i; k < n - 1; k++)
  48.                         masElements[k] = masElements[k+1];
  49.                     n--;
  50.                     i--;
  51.                 }
  52.        
  53.          for(i=0; i<n; i++)
  54.             if(three_not_one(masElements[i]) == true)
  55.                 {
  56.                     for (int q = n - 1; q >= i; q--)
  57.                         masElements[q + 1] = masElements[q];
  58.                     n++;
  59.                     i++;
  60.                 }
  61.                
  62.         for(i=0; i<n; i++)
  63.             printf("%d", masElements[i]);  
  64.      return 0;              
  65.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement