因此,對於一個賦值,我被要求創建一個函數來生成一個斐波那契數組,然後用戶將提供一個隨機數組。然後,我的函數必須檢查用戶輸入的數組是否包含任何斐波那契數,然後該函數將輸出true,否則它將輸出false。我已經能夠創建Fib的數字數組,並檢查它針對陣列但用戶輸入的是有限的,因爲我的Fib陣列具有100我怎樣才能創建一個數組達到某個整數n的斐波那契數組?
bool hasFibNum (int arr[], int size){
int fibarray[100];
fibarray[0] = 0;
fibarray[1] = 1;
bool result = false;
for (int i = 2; i < 100; i++)
{
fibarray[i] = fibarray[i-1] + fibarray[i-2];
}
for (int i = 0; i < size; i++)
{
for(int j = 0; j < 100; j++){
if (fibarray[j] == arr[i])
result = true;
}
}
return result;
}
一個最大尺寸所以基本上我怎樣才能使這樣我就不必使用int fibarray [100],而是可以生成一些特定點的fib數。這一點是用戶數組中的最大數量。
因此,例如,如果用戶輸入數組{4,2,1,8,21},我需要生成一個最大數目爲21的纖維芯片{1,1,2,3,5,8,13 ,21}。如果用戶輸入數組{1,4,10},我需要生成一個{1,1,2,3,5,8,13}的纖維陣列
很新的編程,所以任何幫助將不勝感激!對不起,如果我的代碼是可怕的。
循環遍歷用戶的數組以查找最大數字,然後創建最大爲該數字的fib數字。你需要這種解決方案嗎?我無法理解您的問題 – Michael 2014-09-23 18:32:58
是的,如果我的措辭使得理解有點複雜,我很抱歉。但這正是我需要做的。 – user3684741 2014-09-23 18:37:25
如果用戶輸入'{1,4,10}',你是不是指你必須生成一個最大爲10的fib數組,因爲'10'是最大的?當我認爲它會上升到'8'時,你的陣列上升到'13'。 – 0x499602D2 2014-09-23 18:54:06