Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.51 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. typedef long long ll;
  6.  
  7. void input(ll *a)
  8. {
  9. int x;
  10. while (1)
  11. {
  12. printf("Enter numbers pls \n");
  13. x = scanf("%lld", a);
  14. if (x == 1)
  15. {
  16. char s;
  17. int fl = 0;
  18. s = getchar();
  19. while (s != '\0' && s != '\n')
  20. {
  21. if (s != ' ')
  22. {
  23. fl = 1;
  24. }
  25. s = getchar();
  26. }
  27. if (fl == 0 && *a > 0)
  28. {
  29. break;
  30. }
  31. }
  32. else
  33. {
  34. char s;
  35. s = getchar();
  36. while (s != '\0' && s != '\n')
  37. {
  38. s = getchar();
  39. }
  40. }
  41. printf("Wrong input\n");
  42. }
  43. }
  44.  
  45. int main()
  46. {
  47. ll x;
  48. input(&x);
  49. double y = pow(x, 0.5);
  50. double eps = 10e-8;
  51. ll y_trunc = trunc(y);
  52. while (y - y_trunc < eps) //цикл ввода
  53. {
  54. printf("%f %lld %f %lld \n", y, y_trunc, eps, x);
  55. printf("is the square of the integral. ");
  56. input(&x);
  57. y = pow(x, 0.5);
  58. y_trunc = trunc(y);
  59. }
  60. printf("%lld ", y_trunc); //a0 вне дроби
  61. y -= y_trunc;
  62. double a = 1 / y;
  63. int q1 = trunc(a); //a1 в дроби
  64. a -= q1;
  65. a = 1 / a;
  66. int q = trunc(a);
  67. int i = 1;
  68. int *first_q = (int*) malloc(sizeof(int)); //результирующий массив без а0
  69. if (first_q == NULL)
  70. {
  71. printf("ERROR");
  72. exit(1);
  73. }
  74. first_q[0] = q1;
  75. printf("***\n");
  76. for(;;)
  77. {
  78. if (q == q1)
  79. {
  80. printf("***\n");
  81. int arr[i * 10]; //массив предпосчёта дальнейшей последовательности
  82. arr[0] = q;
  83. int j = 1;
  84. while (j < i * 10)
  85. {
  86. a -= q;
  87. a = 1 / a;
  88. q = trunc(a);
  89. arr[j] = q;
  90. j++;
  91. }
  92. printf("\nArray\n");
  93. for (int e = 0; e < i*10; e++)
  94. printf("%d ", arr[e]);
  95. printf("\n\n");
  96. for (int k = 0; k < i * 10 - i+1; k++)
  97. {
  98. if (arr[k] == q1)
  99. {
  100. int compare_q = 1; //сравнение того что в результирующем и в подсчитанном
  101. int l = 0;
  102. for (l; l < i-1; l++)
  103. {
  104. if (arr[k + l + 1] != first_q[l] )
  105. {
  106. compare_q = 0;
  107. break;
  108. }
  109. }
  110. for (l; l < 10*i - i + 1; l++)
  111. {
  112. if (arr[k + l + 1] != first_q[l] )
  113. {
  114. compare_q = 0;
  115. break;
  116. }
  117. }
  118. if (compare_q && k == 10 * i - i +1)
  119. {
  120. for (l = 0; l < i; l++)
  121. {
  122. printf("%d \n", first_q[l]);
  123. }
  124. printf("\nEnd");
  125. free(first_q);
  126. return 0;
  127. }
  128. if (compare_q == 0)
  129. {
  130. for (int e = 0; e < k; e++) //копирование последовательности в результирующий массив
  131. {
  132. first_q[i] = q;
  133. i++;
  134. first_q = (int*) realloc(first_q, i + 1);
  135. }
  136. printf("kek\n");
  137. for (l = 0; l < i; l++)
  138. {
  139. printf("%d ", first_q[l]);
  140. }
  141.  
  142. break;
  143. }
  144. }
  145. }
  146. }
  147. else
  148. {
  149. printf("lol\n");
  150. first_q[i] = q;
  151. i++;
  152. first_q = (int*) realloc(first_q, i + 1);
  153. a -= q;
  154. a = 1 / a;
  155. q = trunc(a);
  156. }
  157. }
  158. for (int l = 0; l < i; l++)
  159. {
  160. printf("%d ", first_q[l]);
  161. }
  162. return 0;
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement