我有個任務,使該會寫一個方程式的100個數字的代碼遞歸解決(或函數,我不知道這是什麼)數學公式中C++
A(n) = (A(n-1))^2 -n*A(n-2) where A(1) = 1 and A(2) = 1
它必須遞歸解決。我寫了這個代碼到目前爲止
#include <iostream>
using namespace std;
int rekurzija(int n){
if(n=1){
return 1;
}
if(n=2){
return 1;
}
if(n>2){
return rekurzija(n-1)*rekurzija(n-1)-n*rekurzija(n-2);
}
}
int main(){
for(int n=1;n<101;n=n+1){
cout << rekurzija(n) << endl;
}
}
的問題是,程序返回1
百倍,而不是1,1,-2,0,...(而不是實際解決此功能)。這段代碼有什麼問題?
不是你的問題的根源,但你***真的不想調用函數兩次來完成平方。調用一次,將結果存儲在'result'中,然後使用'result * result'。你的CPU會感謝你。 – pjs