码迷,mamicode.com
首页 > 其他好文 > 详细

寻找完美平方数

时间:2018-05-07 19:31:03      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:提取   解决   取出   temp   取整   函数   思路   双层   返回   

/*实现一个函数,判断任一给定整数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;
}

 

寻找完美平方数

标签:提取   解决   取出   temp   取整   函数   思路   双层   返回   

原文地址:https://www.cnblogs.com/ziwangahu/p/9003928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!