用C语言写程序它既是完全平方数,又有两位数字相同,例如144,676等,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言写程序它既是完全平方数,又有两位数字相同,例如144,676等,相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#include<math.h>
void main()

int num;
int x;
int a,b,c;
printf("请输入一个三位数:");
scanf("%d",&num);
a=num/100;
b=num/10%10;
c=num%10;
x=(int)sqrt(num);
if((a==b||a==c||b==c)&&x*x==num)

printf("%d,既是一个完全平方数又是有两个数相同的数",num);

else

printf("%d,是一个不符合条件的数",num);



参考技术A #include<stdio.h>
#include<stdlib.h>

int main( int argc, char *argv[] )

int start;
int result;
char szBuffer[16];

for( start=10;start<100;start++ )
result = start * start;
memset( szBuffer, 0x00, sizeof( szBuffer ) );
sprintf( szBuffer, "%d", result );
if( szBuffer[0] == szBuffer[1]
|| szBuffer[0] == szBuffer[2]
|| szBuffer[1] == szBuffer[2] )
printf( "%d\n", result );

printf( "完成\n" );
return 0;

寻找完美平方数

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

 

以上是关于用C语言写程序它既是完全平方数,又有两位数字相同,例如144,676等,的主要内容,如果未能解决你的问题,请参考以下文章

用C语言写一个程序

寻找完美平方数

C语言中如何判断一个数是完全平方数

输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相等)

完全平方数的末两位数字类型的另一种证明

4-7 统计某类完全平方数