1183 守形數

/*
若正整數n是它的平方數的尾部,則稱n爲守形數,又稱同構數.
例如:6是其平方數36的尾部,76是其平方數5776的尾部,6和76都是守形數.
這些也是:
6^=36
25^2=625
76^2=5776
376^=141376
625^=390625
編程技巧:
1.傳統的用一個計數變量count,然後循環體中一直number/10,count計數,最後的count就是位數
2.直接用log函數,位數count=(int)log10(num)+1
3.用sprintf和strlen函數,sprintf(str,"%d",num),count=strlen(str),
這種直接求長度效率肯定要低很多,但是直接用了庫函數不需要自己實現,
如果需要對字符串處理的話,str還是很有價值的
*/
# include <stdio.h>

int quar(int x, int n)
{
	int sum = 1;
	for(int i = 0; i < n; i++)
	{
		sum = sum * x;
	}
	return sum;
}

int main(void)
{
	int i,n,num,pow,count;
	scanf("%d", &n);
	getchar();    //吸收回車符。
	for(i = 0; i < n; i++)
	{ 
		count = 0;
		scanf("%d", &num);
		getchar();    //吸收回車符。
		int temp = num;
		pow = num * num;
		printf("%d", pow);
		while(temp)
		{
			temp = temp / 10;
			count++;
		}
		if((pow % (quar(10, count))) == num)
			printf("Yes!\n");
		else
			printf("No!\n");
	}
	return 0;
}

發佈了69 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章