C程序搜索不在Fibonacci序列中的数字

时间:2014-09-14 08:49:03

标签: c fibonacci

我希望帮助用 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;

}

2 个答案:

答案 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)