基於visual Studio2013解決C語言競賽題之0413同構數
阿新 • • 發佈:2019-02-19
題目
解決程式碼及點評
該題目與水仙花數類似,只是條件不同,迴圈還是一樣的
/************************************************************************/ /* 13. 一個數恰好等於它的平方數的右端,這個數稱為同構數。 如 5 的平方是25, 5是25中的右端的數, 5就是同構數。找出1~1000之間的全部同構數。 */ /************************************************************************/ /************************************************************************/ #include <stdio.h> #include <stdlib.h>
// 該函式計算num在十進位制時有多少位,比如25是兩位
int f4131(int num)
{
int count=0;
while(num)
{
count++;
num/=10;
}
return count;
}
// 判斷是否同構數
bool f4132(int num)
{
int n=f4131(num);
int times=1;
// 該迴圈找出應該對多少取模才能算出右邊的值
for(int i=0;i<n;i++)
{
times*=10;
}
// 進行同構數判斷 if ((num*num)%times==num) { return true; } else return false; } void main() { for(int i=1;i<=1000;i++) // 遍歷1到1000 { if (f4132(i)) // 判斷該數是否同構數,如果是,則列印 { printf("%4d",i); } } system("pause"); }
程式碼下載及其執行
程式碼下載連結:
解壓密碼為c.itcast.cn
下載解壓後用VS2013開啟工程檔案
點選 “本地Windows偵錯程式” 執行