丢失的三个数
程序员文章站
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;
}
下一篇: 网上赌遇到提款审核不给出款怎么办