1. 程式人生 > >尋找完美平方數

尋找完美平方數

bre int 滿足 實現一個函數 The color n) 程序 BE

/*實現一個函數,判斷任一給定整數N是否滿足條件:它是完全平方數,又至少有兩位數字相同,如144、676等*/

步驟一:怎樣找到完全平方數

步驟二:判斷是否有兩個數相同(雙層判斷)

對於此題,我浪費的時間在怎樣判斷一個數是完全平方數,一開始用循環去判斷,導致程序運行時間太長,放回不出結果。

解決思路:sqrt()函數原本返回的是double類型,現在我只取整數部分,如果r的平方還能與N相等,說明r本身就是整數,即N為完全平方數。

將N中的每一位提取出來,放在num數組數組中。最後雙重循環判斷是否有相同的數。

int IsTheNumber( const int N)
{
int r= sqrt(N);
int temp = N;
int num[20];
int tag=0;
int i=0;
int j;
int length;
if(r*r == N)
{
do
{

num[i]=temp % 10;
temp = temp /10;
i++ ;
}while(temp !=0);
length =i;
for(i =0 ; i <length-1 ;i++)
{
for(j=i+1; j<=length-1 ; j++)
{
if(num[i] == num[j])
{
tag=1;
break;
}
}
}

}

return tag;
}

尋找完美平方數