某涉密單位下發了某種票據,並要在年終全部收回。
每張票據有唯一的ID號。全年所有票據的ID號是連續的,但ID的開始數碼是隨機選定的。
因為工作人員疏忽,在錄入ID號的時候發生了一處錯誤,造成了某個ID斷號,另外一個ID重號。
你的任務是通過編程,找出斷號的ID和重號的ID。
假設斷號不可能發生在最大和最小號。
輸入格式要求程序首先輸入一個整數N(N<100)表示後面數據行數。
接著讀入N行數據。
每行數據長度不等,是用空格分開的若干個(不大於100個)正整數(不大於100000),請注意行內和行末可能有多余的空格,你的程序需要能處理這些空格。
每個整數代表一個ID號。
輸出格式要求程序輸出1行,含兩個整數m n,用空格分隔。
其中,m表示斷號ID,n表示重號ID
樣例輸入1 2
題目大意:找出一連串數字中斷號的和重復號的。
解題思路:注意一定要先輸出斷號的在輸出重號的,還有結果只會輸出兩個數。再就是考慮一下它的輸出,每一次的輸入長度是不能夠確定的,所以采用字符串的方法進行輸出,在一個一個進行截取。但是題目中有說會出現多余的空格,這個是需要處理一下的。
詳見代碼。
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; char ch[1010][10100]; int num[101000]; int main() { int n,k; while (~scanf("%d",&n)) { k=0; getchar(); for (int i=0; i<n; a="0;" for="" int="" j="0;" len="0;">='0'&&ch[i][j]<='9') { a=a*10+ch[i][j]-'0'; } if(ch[i][j]==' '&&ch[i][j-1]!=' ') { num[k++]=a; //cout<<"a="<<a<<endl; a="0;" flag="0;" for="" i="1;" if="" int="">num[i-1]+1) { cout<<num[i]-1<<" for="" i="1;" if="" int="" pre="" return=""></num[i]-1<<"></a<<endl;></n;></algorithm></cstring></cstdio></iostream>