閱讀416 返回首頁    go 阿裏雲 go 技術社區[雲棲]


poj 1552 Doubles【goto語句】

看了一下網上這道題的報告,大家都叫題目水。

說這道題水證明沒有深入思考這道題的一種情況,有的人2次完全掃描數組也解決了這道題,那種解法不在討論之列。

這種情況就是<1,3>組合,我開始寫的是if(a[j]==a[i]*2 || (a[j]==a[i]/2 && a[i]%a[i]==0))count++;這樣就把這種情況算在裏麵了,肯定是WA了

還有就是通過了這道題會用了goto,而且知道POJ是不排斥goto語句的


上AC的代碼

#include <stdio.h>

int a[20];

void dosomething(int num)//num是每一個list數的個數
{
	//test
	int i;
	/*for(i=0;i<num;i++)
		printf("%d ",a[i]);
	printf("\n");*/

	int j;
	int count=0;
	for(i=0;i<num-1;i++)
	{
		for(j=i+1;j<num;j++)
		{
			//printf("i==%d j==%d\n",i,j);
			if(a[j]==a[i]*2 || (a[j]==a[i]/2 && a[i]%2==0))
				count++;
		}
	}

	printf("%d\n",count);
}

int main()
{
	int i,tmp;
	
	while(1)
	{
		for(i=0; ;i++)
		{
			//首先輸入數據
			scanf("%d",&tmp);
			if(tmp==-1)
				goto END;
				//return 0;

			if(tmp==0)
			{
				dosomething(i);
				break;
			}

			a[i]=tmp;
		}
	}
	
	END: return 0;
	//return 0;
}

最後更新:2017-04-03 12:56:20

  上一篇:go 九度題目1184:二叉樹遍曆
  下一篇:go 自定義控件讓TextView、Button的drawableLeft和drawableRight與文本一起居中顯示