HUSTOJ 1017:三个整数是否相邻

Description

判断三个整数是否相邻,是输出"TRUE",否则输出"FALSE"。

Input

输入只有一行,包括3个整数。

Output

输出只有一行。

Sample Input

1 2 3

Sample Output

TRUE

算法思想是等差公式算法:(a+c)/2.0==b 初步思想是这个。但是注意这种情况下相等的不一定是相邻的

它仅仅是一个等差公式,要满足相邻。必须公差为“1”,即是:b-a=c-b=1 这样才满足条件,可以采用先

排序后再进行判断.代码如下:

<span style="font-family:Times New Roman;">#include<cstdio>
#define N 3
int main(){
   int num[N],i,j,temp,change;

   scanf("%d %d %d",&num[0],&num[1],&num[2]);
   for(i=0;i<N-1;i++){
	   temp=i;
	   for(j=i+1;j<N;j++)
		   if(num[j]>num[temp])
			   temp=j;
	 if(i!=temp){
		 change=num[temp];
		 num[temp]=num[i];
		 num[i]=change;
	 }
   }
   if((num[0]+num[2])/2==num[1] && 1==num[0]-num[1])
       printf("TRUE\n");
   else
       printf("FALSE\n");
   return 0;
}</span><span style="font-family:Menlo, Monaco, Consolas, Courier New, monospace;">
</span>


你可能感兴趣的:(算法,ACM,等差公式)