hdu1563-----Find your present!
Problem Description
In the new year party, everybody will get a "special present".Now it's your turn to get your special present, a lot of presents now putting on the desk, and only one of them will be yours.Each present has a card number on it, and your present's card number will be the one that different from all the others.For example, there are 5 present, and their card numbers are 1, 2, 3, 2, 1.so your present will be the one with the card number of 3, because 3 is the number that different from all the others.
Input
The input file will consist of several cases.
Each case will be presented by an integer n (1<=n<=200, and n is odd) at first. Following that, n positive integers will be given in a line. These numbers indicate the card numbers of the presents.n = 0 ends the input.
Output
For each case, output an integer in a line, which is the card number of your present.
Sample Input
5
1 1 3 2 2
3
1 2 1
0
Sample Output
3
2
題意:輸入一串數,找出其中與其他數不同的數並輸出。
輸入:先輸入一個數字n,表示需要輸入的個數,當n為0的時候結束
輸出:輸出其中不同於其他數的數:
演算法:採用暴力查詢,當找到,break,未找到,就繼續查詢,其中主要程式碼如下:
for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(j==i) continue; if(arr[i]==arr[j]) break; } if(j==n) break; }
第一個代表查詢的次數,共有n個,第二個迴圈代表與所有的元素相比較,若沒有找到相等的,j=n,代表當前a[i]是特殊的數,直接break,輸出當前a[i].
全部程式碼如下:
#include<stdio.h>
int arr[210];
int main()
{
int n;
int i,j;
while(scanf("%d",&n),n)
{
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j==i)
continue;
if(arr[i]==arr[j])
break;
}
if(j==n)
break;
}
printf("%d\n",arr[i]);
}
return 0;
}