вместо нужных значений выводится какой-то бред. Помогите, пожалуйста
#include <iostream>
int main()
{
int N, A, B, i, j, sum;
std::cin >> N >> A >> B;
int *abarray = new int[N+1];
abarray[0] = A;
abarray[1] = B;
for (i=2; i <= N - 2; i++)
{
sum = 0;
for (j = 0; j <= i; j++)
{
sum += abarray[j];
}
abarray[i] += sum;
}
for (int i = N; i>=0; i--) std::cout << abarray[i] << "\n";
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Так сойдет?
int main()
{
int N;
std::cin >> N;
int *abarray = new int[N];
std::cin >> abarray[0] >> abarray[1];
for (int i = 2, k = 1, m = abarray[0] + abarray[1];
i < N; i++, k*=2) abarray[i] = m*k;
for (int i = N; i-->0;)
std::cout << abarray[i] << " ";
}
Можно и без массива и с одним циклом:
int main()
{
int N, A, B;
std::cin >> N >> A >> B;
B += A;
N = (1 << (N-3))*B;
for(;N != B;N >>= 1) std::cout << N << " ";
std::cout << B << " " << B-A << " " << A;
}
