当前位置: 代码迷 >> 综合 >> HAUT OJ 1206: Water problem
  详细解决方案

HAUT OJ 1206: Water problem

热度:81   发布时间:2023-12-04 03:35:40.0

问题描述:

给你n个数,找出与众不同的那一个

输入:

输入一个数n(3<=n<=1000),接下来输入n个数,数据保证这n个数中刚好有n-1个数相同,且每个数的绝对值都不大于1000000

输出:

输出那个“另类”的数

样例输入:

6
5 5 5 1 5 5

样例输出:

1

 


原因分析:

我的原始代码(错误代码):没有考虑 1 5 5 5 5 5 和 5 5 5 5 5 1这两种情况,只考虑了1在中间的情况

#include<stdio.h>
#include<math.h>int main()
{int a[1000005],n,i,j,p;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=1;i<n-1;i++){if(a[i]!=a[i-1]&&a[i]!=a[i+1]){printf("%d",a[i]);break;}}return 0;
}

解决方案:

对剩余两种情况继续讨论 即可

#include<stdio.h>
#include<math.h>int main()
{int a[1000],n,i,j,p;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=1;i<n-1;i++){if(a[0]!=a[i]&&a[0]!=a[i+1]) // 1 5 5 5 5 5情况{printf("%d",a[0]);break;}if(a[i]!=a[i-1]&&a[i]!=a[i+1]){printf("%d",a[i]);break;}if(a[i+1]!=a[i]&&a[i+1]!=a[i-1])  // 5 5 5 5 5 1情况{printf("%d",a[i+1]);break;}}return 0;
}

  相关解决方案