欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

丢失的三个数

程序员文章站 2022-03-13 14:45:29
...

题目描述
现在有一个数组,其值为从1到10000的连续增长的数字。出于某次偶然操作,导致这个数组中丢失了某三个元素,同时顺序被打乱,现在需要你用最快的方法找出丢失的这三个元素,并且将这三个元素根据从小到大重新拼接为一个新数字,计算其除以7的余数。 例:丢失的元素为336,10,8435,得到的新数字为103368435,除以七的余数为2。
输入描述:
输入数据为一行,包含9997个数字,空格隔开。
输出描述:
输出为一行,包含一个数字。
示例1
输入
同题设例子输入
输出
2

思路

这道题的思路也没什么太特别的,就是老老实实的遍历就行了

#include<bits/stdc++.h>
using namespace std;
const int maxx= 1e4+20;
double nsize(long long  s){//得到整数的位数
    int si= 0;
    while(s){
        si++;
        s/= 10;
    }
    return (double)si;
}
int main(){
    vector<int> vec(maxx, 0);//定义数组并同时赋值为0
    int in;
    int t= 9997;
    for(int i= 1; i< t; i++){
        cin>>in;
        vec[in]= 1;
    }
    t= 10000;
    int v[4];
    int i= 0;
    for(int j= 1; j<= t; j++){
        if(!vec[j])
         v[i++]= j;
    }
    sort(v, v+3);

   long long sum=  0;//防止int类型不够用
    for(int i= 2; i>= 0; i--){
        sum= sum+ v[i]*pow(10.0,nsize(sum));
    }
    cout<<sum%7<<endl;
    return 0;
}