#include <stdio.h>
#include <stdlib.h>
/*
给定含有n个元素的数组,
其中存放了1-(n-1)之内的整数,
只有一个整数是重复的,
请找出这个数
*/
/*
思路:
num[0]+...+num[n-1] - (1+...+n)
*/
int main(){
int n;
while (printf("Please input n:\n"), fflush(stdin), scanf("%d", &n) != EOF){
int *numbers = (int*)malloc(n*sizeof(int));
for (int i = 0; i < n; ++i)
scanf("%d", numbers + i);
int sum = 0;
for (int i = 0; i < n; ++i)
sum += numbers[i];
printf("%d\n",sum - (int)(n-1)*n/2);
}
system("pause");
return 0;
}
原文:http://www.cnblogs.com/mutaohengheng/p/5108045.html