/*
若正整數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;
}
1183 守形數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.