循环结构-7744问题

解法一:

/*
题目:输出所有形如aabb的四位完全平方数(即前两位相等,后两位也相等) 
思考:判断一个数是否为完全平方数,先求出它的平方根,看是否是整数 
	判断一个数是否是整数,把这个数与它的整数部分比较即可。 
*/
#include
#include
int main(){
	int a,b,n;
	double m;
	for(a=1;a<=9;a++){
		for(b=0;b<=9;b++){
			n=a*1100+b*11;//记录所有的完全平方数 
			m=sqrt(n);//n开平方 
			if(floor(m+0.5)==m)//判断m是否是整数 
			printf("%d\n",n); 
		}
	}
	return 0;
} 

解法二:

/*
枚举平方根x 
*/
#include
int main(){
	int x,n,hi,lo;
	for(x=1;;x++){
		n=x*x;//枚举所有的完全平方数 
		if(n<1000)continue;
		if(n>9999)break;
		hi=n/100;//取前两位数
		lo=n%100;//取后两位数
		if(hi/10==hi%10 && lo/10==lo%10)//判断n是否是形如aabb的形式 
		printf("%d\n",n);
	}
	return 0;
}

注意:

floor
  原型:extern float floor(float x);
  
  用法:#include 
  
  功能:求不大于x的最达整数
  
  说明:返回x的下限,如74.12的下限为74,-74.12的下限为-75。返回值为float类型。
  
  举例:

      // floor.c
      
      #include 
      #include 

      main()
      {
        float x;
        
        clrscr();        // clear screen
        textmode(0x00);  // 6 lines per LCD screen
        
        x=74.12;
        printf("floor(%.2f)=%.0f\n",x,floor(x));
        x=-74.12;
        printf("floor(%.2f)=%.0f\n",x,floor(x));
        
        getchar();
        return 0;
      }
sqrt
  原型:extern float sqrt(float x);
  
  用法:#include 
  
  功能:计算x的平方根。
  
  说明:x应大于等于零。
  
  举例:


      // sqrt.c
      
      #include 
      #include 

      main()
      {
        clrscr();        // clear screen
        textmode(0x00);  // 6 lines per LCD screen
        
        printf("sqrt(2000)=%f",sqrt(2000.0));
        
        getchar();
        return 0;
      }

你可能感兴趣的:(算法竞赛入门,算法侦探,算法)