1. 程式人生 > >基於visual Studio2013解決C語言競賽題之0413同構數

基於visual Studio2013解決C語言競賽題之0413同構數



題目

解決程式碼及點評

該題目與水仙花數類似,只是條件不同,迴圈還是一樣的

/************************************************************************/
/* 
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偵錯程式” 執行

程式執行結果