несложная динамика)
#include <iostream>
#include <vector>
#include <map>
#include <cmath>
#include <queue>
#include <set>
using namespace std;
#define int long long
const int MAXN = 100,MAXK = 100;
int d[MAXN], d0[MAXN];
void solve(int n, int k)
{
d[1] = k-1;
d0[0] = 0;
for(int i = 2; i <= n; i++)
{
d[i] = (d[i-1]+d0[i-1])*(k-1);
d0[i] = d[i-1];
}
cout << d[n] + d0[n];
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,k;
cin >> n >> k;
solve(n,k);
}
Поделитесь своими знаниями, ответьте на вопрос:
Придумайте выражение на русском языке, для логической функции: A+BC
int GetMax(int n, int* A);
int GetMin(int n, int* A);
int main() {
std::cout << "N=";
int N, i;
std::cin >> N;
int A[N+1];
// заполнение массива
for(i = 1; i <= N; i++) {
std::cout << "A[" << i << "]=";
std::cin >> A[i];
}
// чётные индексы
for(i = 1; i <= N; i++) {
if (i % 2 == 0) {
A[i] = GetMax(i, A);
}
}
// нечётные индексы
for(i = 1; i <= N; i++) {
if (i % 2 == 1) {
A[i] = GetMin(i, A);
}
}
std::cout << "Результат:" << '\n';
for(i = 1; i <= N; i++)
std::cout << A[i] << ' ';
return 0;
}
int GetMax(int n, int* A) {
int max = A[1];
for(int i = 1; i <= n; i++)
if (A[i] > max)
max = A[i];
return max;
}
int GetMin(int n, int* A) {
int min = A[1];
for(int i = 1; i <= n; i++)
if (A[i] < min)
min = A[i];
return min;
}