因此,对于一个赋值,我被要求创建一个函数来生成一个斐波那契数组,然后用户将提供一个随机数组。然后,我的函数必须检查用户输入的数组是否包含任何斐波那契数,然后该函数将输出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