Я пытаюсь сделать функцию для вычисления массива чисел, начиная с определенного массива и суммируя последние три числа. Итак, если мы хотим начать нашу последовательность Трибоначи с [1, 1, 1] в качестве начального входа, мы получим следующую последовательность:
[1, 1, 1, 3, 5, 9, 17, 31, ...]. Это упражнение из codewar.
Обычно у меня возникают проблемы во время вызова функции: «аргумент типа long long несовместим с параметром типа const long long.»
long long *tribonacci( const long long signature[3], size_t n) {
long long sum = signature[0] + signature[1] + signature[2];
long long *tribonacci = new long long (n);
tribonacci = NULL;
if (n == 0) return tribonacci;
for (int i = 0;i < 3;i++) {
if (i + 1 == n) return tribonacci;
tribonacci[i] = signature[i];
}
if (n == 4) return tribonacci;
tribonacci[3] = sum;
if (n == 5) return tribonacci;
tribonacci[4] = sum + signature[1] + signature[2];
for (int i = 5;i < n;i++) {
tribonacci[i] = tribonacci[i - 1] + tribonacci[i - 2];
}
return tribonacci;
}
int main() {
int n;
cin >> n;
const long long signature[3] = { 1,1,1 };
long long *tribonacci1 = tribonacci(*signature[3]*, n);
for (int i= 0;i < n;i++) {
cout<<tribonacci1[i]<<' ';
}
return 0;
}