数组相邻间隔1进行查找

来源:互联网 发布:ubuntu系统版本 编辑:程序博客网 时间:2024/06/03 20:12


有一个int型数组,每两个相邻的数之间的差值不是1就是-1.现在给定一个数,要求查找这个数在数组中的位置。

#include <iostream>using namespace std;#include <cstdio>#include <cstdlib>int s[100];int main(){    int n,key;    while(scanf("%d",&n) != EOF){         for(int i = 0;i < n;i++){              scanf("%d",&s[i]);         }         scanf("%d",&key);         int curr = 0;         bool tag = false;         if(s[curr] == key){             printf("%d\n",curr);             continue;         }         int gap = abs(key - s[0]);         while(curr < n){             if(s[curr+gap] == key){                 printf("%d\n",curr+gap);                 tag = true;                 break;             }else{                 curr = curr + gap;                  gap = abs(key - s[curr]);         /* 由于相邻间隔只有1或者-1,那么在(curr,curr+gap)中不会出现key */              }         }         if(tag == false){             printf("未找到");          }    }    system("pause");}

0 0
原创粉丝点击