- 前言
- 一、代码
- 结果显示
前言
这题是我在做笔试的时候,碰到的一道题目。本人觉得挺有意思,就记录下来。
题目是:斐波那契数列(0、1、1、2、3、5、8、13、21、34…),输入一个大于1的正整数,如果这个数在斐波那契数列里面,就返回它的序号,否则,则返回-1。如:输入:5 输出:6; 输入:9 输出:-1
话不多说,直接上代码
一、代码代码如下(示例):
#include结果显示int Get_Number(int* p, int num); int main(void) { int arr[100] = {0, 1, 1}; int i, num; for( i = 3; i < 100; i++) { arr[i] = arr[i-1] + arr[i-2]; } printf("输入:"); scanf("%d", &num); //输入大于1的正整数 if(num < 2) { printf("请输入一个大于1的整数:"); scanf("%d", &num); } printf("n"); printf("输出:%dn", Get_Number(arr, num)); } //判断num是否在arr数组里面 int Get_Number(int* p, int num) { int i = 0; while( *(p + i) != num ) { i++; if( 99 == i) { break; } } if( 99 == i ) { return -1; } else { return i+1; } }
代码思路都在注释里面
这个数在斐波那契数列里面
这个数不在斐波那契数列里面
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)