1 条题解
- 
  0
Guest LV 0 MOD
 - 
  1
特殊地,如果没有给出个数 \(n\),可以使用
while(~scanf("%d",&x))或
while(cin>>x)读入。解决了这个问题,这道题也很好解决。
#include<bits/stdc++.h> using namespace std; int x,maxn=INT_MIN,minn=INT_MAX,ans1=0,ans2=0; int a[10005];//注意,这里每个数的上限是 10000,所以要开 10000 及以上的桶 int main() { while(~scanf("%d",&x))//特殊的读入 { a[x]++;//用桶装好 maxn=max(maxn,x);//枚举左边界 minn=min(minn,x);//枚举右边界 } for(int i=minn; i<=maxn; i++)//开始判断 { if(a[i]==0)//没有出现,即第一个答案 ans1=i; if(a[i]==2)//重复出现,即第二个答案 ans2=i; } printf("%d %d\n",ans1,ans2);//分别输出 return 0; } 
- 1
 
信息
- ID
 - 1438
 - 难度
 - 2
 - 分类
 - (无)
 - 标签
 - 递交数
 - 3
 - 已通过
 - 1
 - 通过率
 - 33%
 - 上传者