Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- typedef long long ll;
- void input(ll *a)
- {
- int x;
- while (1)
- {
- printf("Enter numbers pls \n");
- x = scanf("%lld", a);
- if (x == 1)
- {
- char s;
- int fl = 0;
- s = getchar();
- while (s != '\0' && s != '\n')
- {
- if (s != ' ')
- {
- fl = 1;
- }
- s = getchar();
- }
- if (fl == 0 && *a > 0)
- {
- break;
- }
- }
- else
- {
- char s;
- s = getchar();
- while (s != '\0' && s != '\n')
- {
- s = getchar();
- }
- }
- printf("Wrong input\n");
- }
- }
- int main()
- {
- ll x;
- input(&x);
- double y = pow(x, 0.5);
- double eps = 10e-8;
- ll y_trunc = trunc(y);
- while (y - y_trunc < eps) //цикл ввода
- {
- printf("%f %lld %f %lld \n", y, y_trunc, eps, x);
- printf("is the square of the integral. ");
- input(&x);
- y = pow(x, 0.5);
- y_trunc = trunc(y);
- }
- printf("%lld ", y_trunc); //a0 вне дроби
- y -= y_trunc;
- double a = 1 / y;
- int q1 = trunc(a); //a1 в дроби
- a -= q1;
- a = 1 / a;
- int q = trunc(a);
- int i = 1;
- int *first_q = (int*) malloc(sizeof(int)); //результирующий массив без а0
- if (first_q == NULL)
- {
- printf("ERROR");
- exit(1);
- }
- first_q[0] = q1;
- printf("***\n");
- for(;;)
- {
- if (q == q1)
- {
- printf("***\n");
- int arr[i * 10]; //массив предпосчёта дальнейшей последовательности
- arr[0] = q;
- int j = 1;
- while (j < i * 10)
- {
- a -= q;
- a = 1 / a;
- q = trunc(a);
- arr[j] = q;
- j++;
- }
- printf("\nArray\n");
- for (int e = 0; e < i*10; e++)
- printf("%d ", arr[e]);
- printf("\n\n");
- for (int k = 0; k < i * 10 - i+1; k++)
- {
- if (arr[k] == q1)
- {
- int compare_q = 1; //сравнение того что в результирующем и в подсчитанном
- int l = 0;
- for (l; l < i-1; l++)
- {
- if (arr[k + l + 1] != first_q[l] )
- {
- compare_q = 0;
- break;
- }
- }
- for (l; l < 10*i - i + 1; l++)
- {
- if (arr[k + l + 1] != first_q[l] )
- {
- compare_q = 0;
- break;
- }
- }
- if (compare_q && k == 10 * i - i +1)
- {
- for (l = 0; l < i; l++)
- {
- printf("%d \n", first_q[l]);
- }
- printf("\nEnd");
- free(first_q);
- return 0;
- }
- if (compare_q == 0)
- {
- for (int e = 0; e < k; e++) //копирование последовательности в результирующий массив
- {
- first_q[i] = q;
- i++;
- first_q = (int*) realloc(first_q, i + 1);
- }
- printf("kek\n");
- for (l = 0; l < i; l++)
- {
- printf("%d ", first_q[l]);
- }
- break;
- }
- }
- }
- }
- else
- {
- printf("lol\n");
- first_q[i] = q;
- i++;
- first_q = (int*) realloc(first_q, i + 1);
- a -= q;
- a = 1 / a;
- q = trunc(a);
- }
- }
- for (int l = 0; l < i; l++)
- {
- printf("%d ", first_q[l]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement