/******************************************************************
*  源程序名：ImpTask6_1_1.cpp                  　　　　　　  　　 *
*  功能：统计1至100间的同构数个数。要求用自定义函数实现判断一个   *
*        数是否为同构数功能。主函数完成输出功能。　　　　　　     *
******************************************************************/
#include <iostream.h>
int sameStructure(int n);//函数原型声明
void main()
{
	int n,count=0;
	for (n=1;n<=100;n++)//判断1到100间的所有数
	{
		if (sameStructure(n)==1)//调用自定义函数
			count++;//是同构数，就输出
	}
	cout<<"1~100间有"<<count<<"个同构数。"<<endl;
}
int sameStructure(int n)
{
	int square=1;//square用于存放数n的平方
	int flag=1;//设一标志变量，约定flag=1与该数是同构数等价
	square=n*n;
	while (n!=0)//n要小于等于square
	{
		if (n%10!=square%10)//取最低位
		{
			flag=0;//最低位不等，则不是同构数，改变标志变量flag的值
			break;//已有一位不等，不必再往下判断，跳出循环
		}
		n=n/10;//去掉最低位
		square=square/10;
	}
	return flag;
}