nyoj62 笨小熊

#include <stdio.h>
#include <string.h>
int main()
{
	char a[102];
	int k;
	scanf("%d",&k);
	while(k--)
	{
		int b[28]={0};
		scanf("%s",a);
		int n=strlen(a);
		int i,max=0,min=100,p;//100爲單詞字母個數最大上線
		for(i=0;i<n;i++)
		{
			b[a[i]-'a']++;
		}
		for(i=0;i<26;i++)
		{
			if(b[i]>max)
				max=b[i];
		}
		for(i=0;i<26;i++)
		{
			if(b[i]<min&&b[i]!=0)
				min=b[i];
		}
		p=max-min;
		if(p>=2)
		{
			for(i=2;i<p;i++)
			{
				if(p%i==0)//判斷是否爲質數這裏 要好好改進 但要注意取值是否都取到了
					break;
			}
			if(i==p)
			{
				printf("Lucky Word\n");
				printf("%d\n",p);
			}
			else
			{
				printf("No Answer\n");
				printf("0\n");
			}
			
		}
		else
		{
			printf("No Answer\n");
			printf("0\n");
		}
	}
	return 0;
}








此題就是取了一個巧  存放字母出現個數的 時候 用數組下標表示各個字母在26個英文字母中的 順序 
發佈了41 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章