我希望帮助用 C编程语言编写一个简单程序,帮助用户在Fibonacci序列中搜索整数 NOT 给定的整数范围。 我有一个程序,在给定的序列中显示Fibonacci数字以供参考。
int main()
{
int i;
/* Declare and initialise an int array with the first 2 fibonacci numbers 1 and 1 */
/* The size of the array should be NUM_FIBON. */
int *fibonacci;
int sizeOfArray;
/* Display the purpose of the program */
printf("\nThis program displays the fibonacci numbers\n\n");
printf("Enter the number of Fibonacci numbers to compute: ");
scanf("%i", &sizeOfArray);
fibonacci = malloc(sizeof(int) * sizeOfArray);
fibonacci[0]=1;
fibonacci[1]=1;
/* Populate the array with other fibonacci numbers, starting with the 3rd number */
/* Each fibonacci number is the sum of the previous two */
for(i=2; i<sizeOfArray; i++)
{
fibonacci[i] = fibonacci[i-1]+fibonacci[i-2];
}
/* Print message:
* Calculation over.
* Press [Enter] to display the first x fibonacci numbers
*
* then wait for the [Enter] key to be pressed.
*/
printf("Calculation over \nPress ENTER to display the first %i fibonacci numbers\n\n", sizeOfArray);
getch();
/* Print the 12 first fibonacci numbers */
for(i=0; i<sizeOfArray; i++)
{
if (i % 10 == 0)
{
printf("\n");
printf("%-8i", fibonacci[i]);
}
else
{
printf("%-8i", fibonacci[i]);
}
}
free(fibonacci);
/* Pause so the result can be seen when the program starts from windows explorer */
getch();
/* Return success code to the operating system */
return 0;
}
答案 0 :(得分:0)
是的,那段代码是一种红色的鲱鱼。你需要一个名为is_fibbonacci的函数,1个参数和一个int,返回TRUE或FALSE。在while循环中只需要3个变量来计算下一个fibbonacci,直到next更大或等于参数。
答案 1 :(得分:0)
步骤1:重写fibbonacci生成器以便进行迭代工作,现在需要1个参数步骤并返回fib数。所以0返回1,1返回2,2等三等。 第2步:复制新的fibbonacci生成器,重命名为is_fibbonacci。将参数重命名为test_value。 在循环while(test_value&lt; new_fib)中,生成new_fib。当循环中断返回时(new_fib == test_value)