program z1;
var i: integer;
a, x, f: real;
begin
writeln ('Программа вычисления функции f(x) = sin (2x) / sqrt (x)');
writeln ('При x, изменяющемя от 1 до 2 с шагом а');
writeln ('Введите шаг измениения функции (a>0)');
write ('a = ');
readln (a);
writeln ('i - номер строки');
writeln ('||');
writeln ('| Таблица функции f(x) = sin (2x) / sqrt (x) |');
writeln ('||');
writeln ('| i | x | f | Значение |');
writeln ('||');
i:=0;
x:=1;
repeat
i:=i+1;
f:=sin (2*x) / sqrt (x);
if f > 0 then writeln ('|',i:5,' | ',x:0:3,' | ',f:0:3,' | положительная |') else
if f < 0 then writeln ('|',i:5,' | ',x:0:3,' | ',f:0:3,' | отрицательная |') else
writeln ('|',i:5,' | ',x:0:3,' | ',f:0:3,' | равна 0 |');
writeln ('||');
x:=x+a;
until x > 2.0001
end.
Объяснение:
Программы будет выводит значение: положительная или отрицательная (а не неотрицательная, т.к. думаю, что там просто опечатка)
Программа допускает точность а до тысячных разрядов дробной части.
sin вычисляется в радианах
#include <iostream>
#include <cmath>
#include <set>
#include <vector>
#include <algorithm>
#pragma GCC optimize("Ofast")
using ll = long long;
using ld = long double;
using namespace std;
vector<vector<ll>> a;
ll find_min(vector<ll> v){
ll mn = pow(10,9);
for(auto i: v)
mn = min(i,mn);
return mn;
}
void f(ll n){
ll mn = find_min(a[n]);
for(ll i = 0; i < a[n].size(); i++)
a[n][i] *= mn;
}
signed main() {
ll n,m;
cin >> n >> m;
for(ll i = 0; i < n; i++){
vector<ll> temp(m);
for(ll j = 0; j < m; j++)
cin >> temp[j];
a.push_back(temp);
}
for(ll i = 0; i < n; i++)
f(i);
for(ll i = 0; i < n; i++){
for(ll j = 0; j < m; j++)
cout << a[i][j] << " ";
cout << "\n";
}
}
1. 10
2. 1001
3. 10010110
4. 1001011010010110
5. 10010110100101101001011010010110
После четвёртого шага я заметил, что наша строка состоит из подстрок "1001" и "0110". Количество таких подстрок после третьего шага начинает увеличиваться в два раза с каждым шагом. Например, в третьем шаге подстрока"10010110" - одна, а в четвёртом - две. Исходя из этого можно вынести, что в пятом шаге их - четыре (кто сомневается - проверьте). Составим таблицу, благодаря которой мы узнаем, сколько подстрок "10010110" будет в строке после одиннадцатого шага:
3. 1
4. 2
5. 4
6. 8
7. 16
8. 32
9. 64
10. 128
11. 512
После одиннадцатого шага строка будет иметь 512 подстрок "10010110" - то есть, состоять из 512 * 8 = 4096 символов. Это всего лишь отступление.
В одной подстроке "10010110" - 4 единицы. Значит, в 512 таких подстроках их будет 512 * 4 = 2048 штук.
ответ: 2048.