#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
int to_10(int num, int syst){
int res = 0,cnt = 0;
while(num > 0){
res += num % 10 * pow(syst,cnt);
cnt++;
num /= 10;
}
return res;
}
int to_r(int num,int r){
string s;
while(num > 0){
s += num % r + '0';
num /= r;
}
reverse(s.begin(),s.end());
return stoi(s);
}
signed main() {
int a,b,p=7,q=4,r=5;
cin >> a >> b;
a = to_10(a,p);
b = to_10(b,q);
int ans = pow(a,2) + 2 * a + pow(b,2);
cout << ans << "(10)\n";
ans = to_r(ans,r);
cout << ans << "(" << r << ")\n";
}
Поделитесь своими знаниями, ответьте на вопрос:
Процесс, направленный на реализацию результатов законченных научных исследований и разработок либо иных научно-технических достижений
Объяснение:
#include<iostream>
using namespace std;
//добавлен фиктивный 0-й элемент, чтобы нумерация была как
//в задании (в с++ нумеровать массивы можно только с 0)
int arr[16] = {0, 10, 22, 16, 11, 45, 25, 25, 4, 10, 7, 8, 25, 10, 1, 9};
// чтобы найти сумму в поддереве вершины i, нужно вызвать
// recurrent_sum(i);
int recurrent_sum(int current){
//условие выхода из рекурсии
if(current > 15){
return 0;
}
return arr[current] + recurrent_sum(2 * current) + recurrent_sum(2 * current + 1);
}
int even_counter(int current){
if(current > 15){
return 0;
}
return (arr[current] % 2 == 0 ? 1 : 0) + even_counter(2 * current) + even_counter(2 * current + 1);
}
int main(){
//проверяем, что всё работает.
cout << recurrent_sum(1) << endl; //228
cout << even_counter(1) << endl; //7
return 0;
}