Язык программирования С
1) Скласти програму рішення рівняння F (x) = 0 c використанням методу дихотомій (метод половинного ділення). Блок-схема и код.
2) Дана нескінченна числова послідовність
101001000100001000001 ... ..
Вводиться число К. Визначити, яка цифра (0 або 1) знаходиться на К-й
позиції. (Наприклад, вводимо 4, програма видає - 1, т. К. На 4-му місці послідовності знаходиться 1)
Ответы на вопрос
1)
#include<stdio.h>
#include<math.h>
double f(double x) {
// Определите вашу функцию здесь. Например, F(x) = x^2 - 4
return x*x - 4;
}
void bisect(double a, double b) {
if (f(a) * f(b) >= 0) {
printf("Ви неправильно ввели a і b\n");
return;
}
double c = a;
while ((b-a) >= 0.01) {
// Находим серединное значение
c = (a+b)/2;
// Проверяем, является ли c корнем?
if (f(c) == 0.0)
break;
// Decide the side to repeat the steps
else if (f(c)*f(a) < 0)
b = c;
else
a = c;
}
printf("Корень цього рівняння = %.4lf\n",c);
}
// Головна функція
int main() {
double a,b;
a=-100;
b=100;
bisect(a, b);
return 0;
}
2)
#include <stdio.h>
#include <math.h>
int find_digit(int k) {
int n = (int)(sqrt(2 * k));
if(n * (n + 1) >= 2 * k) {
return 1;
} else {
return 0;
}
}
int main() {
int k;
printf("Введіть число К: ");
scanf("%d", &k);
printf("Цифра на %d позиції: %d\n", k, find_digit(k));
return 0;
}