列表

详情


KS32. 找缺失数字

描述

给定一个按自然数顺序递增用逗号分割的数组,请找出其中第一个缺失的数。

例如 0 , 1 , 2 , 3 , 4 , 5 , 7 , 8 中,第一个缺失的数是 6。
        0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 中,第一个缺失的数是 7。

数据范围:

输入描述

给定一个以逗号(,)分割的数字串。

输出描述

输出缺失的数字

示例1

输入:

0,1,2,3,4,5,7

输出:

6

示例2

输入:

0,1,2,3,4,5,6,7

输出:

8

原站题解

C 解法, 执行用时: 2ms, 内存消耗: 308KB, 提交时间: 2021-09-17

#include <stdio.h>

int main(){
    int num;
    int cnt = 0;
    
    while(1 == scanf("%d,", &num)){
        if(num != cnt){
            printf("%d", cnt);
            break;
        }
        cnt ++;
    }

}

C 解法, 执行用时: 2ms, 内存消耗: 336KB, 提交时间: 2021-09-25

#include "stdio.h"
#define MAX 500
int main()
{
    int List[MAX],length=0;
    while(1)
    {
        scanf("%d",List+length);
        length++;
        if(getchar()=='\n')
            break;
    }
    int next=List[0]+1;
    for(int i=1;i<length;i++)
    {
        if(List[i]==next)
        {
            next++;
        }
        else
            break;
    }
    printf("%d",next);
    return 0;
}

上一题