Advertisement
Lisaveta777

Print all numbers with two particular digits in it

Dec 6th, 2018
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #define VALUE1 3
  3. #define VALUE2 1
  4. //vvesti razmernost chisla(3 dlja diapozona do 999)
  5. //vyvesti vse chisla, soderzhashie odnu 1 i odnu 3(ix mozhno menjat)
  6. //est preduprezhdenija: kasting nado delat; ili chto?
  7. int is_it_fit(int,int,int);
  8.  
  9. int main()
  10. {
  11.     int power,number,fit,i,limit=10;
  12.     scanf("%d",&power);
  13.     for(i=1;i<power;i++)
  14.         limit*=10;
  15.         printf("limit is %d\n",limit);
  16.  
  17.     for(number=limit/10;number<limit;number++)
  18.     {
  19.         fit=0;
  20.         fit=is_it_fit(number,VALUE1,VALUE2);
  21.         if(fit)
  22.             printf("%d\t",number);
  23.     }
  24.  
  25.     return 0;
  26. }
  27. int is_it_fit(int num,int val1,int val2)
  28. {
  29.     int result,counter1,counter2,hold_num=num;
  30.     result = counter1 = counter2 = 0;
  31.     do
  32.     {
  33.         counter1+= ( num%10 == val1) + ((num/=10)==val1);
  34.  
  35.     }while(num/10);
  36.  
  37.     num = hold_num;
  38.     do
  39.     {
  40.         counter2+= ( num%10 == val2) + ((num/=10)==val2);
  41.  
  42.     }while(num/10);
  43.     result = ((counter1==1)&&(counter2==1))?1:0;
  44.     return result;
  45.  
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement