Guest User

Untitled

a guest
Feb 20th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int baza_2(int n){
  5. int j, numarul_in_baza_2, power;
  6. power=1;
  7. numarul_in_baza_2=0;
  8. for (j=n;j;j/=2){
  9. numarul_in_baza_2=numarul_in_baza_2+(j%2)*power;
  10. power=power*10;
  11. }
  12. return numarul_in_baza_2;
  13. }
  14.  
  15. int numarul_de_cifre_1_din_reprezentarea_binara(int numarul_1){
  16. int x, nr1, m;
  17. nr1=0;
  18. for(m=numarul_1;m;m/=10){
  19. x=m%10;
  20. if (x==1)
  21. nr1++;
  22. }
  23. return nr1;
  24. }
  25.  
  26. int numarul_de_cifre_0_din_reprezentarea_binara(int numarul_0){
  27. int y, nr0, l;
  28. nr0=0;
  29. for(l=numarul_0;l;l/=10){
  30. y=l%10;
  31. if (y==0)
  32. nr0++;
  33. }
  34. return nr0;
  35. }
  36.  
  37. int main() {
  38. int n, a0, a1, c, i, k, numarul;
  39. int nr2, nr_1, nr_0;
  40. scanf("%d", &n);
  41. nr2=0;
  42. //Subpunctul 1: verifica daca numarul "n" citit de la tastatura face parte din seria Lucas.
  43. a0=2;
  44. a1=1;
  45. for(i=2;i<=n;i++){
  46. c=a0+a1;
  47. a0=a1;
  48. a1=c;
  49. if(n==c)
  50. break;
  51. }
  52. if(n==c)
  53. printf("Numarul n face parte din seria Lucas.\n");
  54. else
  55. printf("Numarul n nu face parte din seria Lucas.\n");
  56.  
  57.  
  58. //Subpunctul 3: afiseaza si numara numarul de numere mai mici sau egale cu n-ul citit de la tastura care, in binar, au acelasi numar de cifre 0 si 1.
  59.  
  60. for(k=1;k<=n;k++){
  61. numarul=baza_2(k);
  62. nr_1=numarul_de_cifre_1_din_reprezentarea_binara(numarul);
  63. nr_0=numarul_de_cifre_0_din_reprezentarea_binara(numarul);
  64. if(nr_0==nr_1){
  65. printf("numar gasit=%d\n", k);
  66. nr2++;
  67. }
  68. }
  69. printf("numarul de numere gasite care veriifica conditiile=%d\n", nr2);
  70. return 0;
  71. }
Add Comment
Please, Sign In to add comment