SH13. 找出重复的数字
描述
一组无序的自然数集合,由0,1,2... ...,n的数字和一个的数字X(X>=0 && X<=n)组成,请从集合中找出这个重复数字X。
输入描述
空格分割的自然数集合输出描述
重复数字示例1
输入:
9 6 4 2 1 3 5 7 0 1 8
输出:
1
说明:
0,1,2,3,4,5,6,7,8,9 + 1示例2
输入:
3 0 2 2 1
输出:
2
说明:
0,1,2,3 + 2C 解法, 执行用时: 1ms, 内存消耗: 368KB, 提交时间: 2021-07-03
#include <stdio.h> int main() { int a[1000]={0} ; int i = 0 ; while (scanf("%d", &i) != EOF) { // 注意 while 处理多个 case // 64 位输出请用 printf("%lld") a[i]++; if ( a[i]==2 ) printf("%d\n", i); } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 304KB, 提交时间: 2021-09-11
#include <stdio.h> int main() { int n; int arr[1000]={0}; while(scanf("%d",&n)!=EOF) { arr[n]++; } int i; for(i=0;i<1000;i++) { if(arr[i]==2) { printf("%d\n",i); break; } } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2020-05-20
#include<stdio.h> int main(){ int sum=0,a,i=0; while(scanf("%d ",&a)!=EOF){ sum +=a; if(a>i){i=a;} } sum -= i*(i+1)/2; printf("%d",sum); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 364KB, 提交时间: 2020-05-07
#include<stdio.h> int main(){ int sum=0,a,i=0; while(scanf("%d ",&a)!=EOF){ sum +=a; if(a>i){i=a;} } sum -= i*(i+1)/2; printf("%d",sum); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 368KB, 提交时间: 2020-05-18
#include <stdio.h> #include <stdlib.h> int main() { int a[1000],b[1000],i=0,n=-1; for(i=0;i<1000;i++) b[i]=0; i=0; while(1){ scanf("%d",&a[i]); b[a[i]]++; if(n==-1){ if(b[a[i]]>1)n=a[i]; } if(getchar()!='\n')i++; else break; } printf("%d",n); }