打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121。

方一    //打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121。

/*    #include <stdio.h>
    
    int main()
    {
    int i, v, tv, nv;
    for (i = 0; i < 256; ++i)
    {
        v = i*i;
        tv = v;
        nv = 0;
        while (tv!=0)
        {
            nv = 10*nv+tv%10;
            tv/=10;
        }
        if (nv == v){
        printf ("%d\n", i);
    }
    }
    return 0;
    }
*/

//方二
#include<stdio.h>
int main(void)
{
        int i,n;
        int n1,n2;
        for(i=0;i<256;i++)
        {
                n=i*i;
                n1=n;
                n2=0;
                while(n1!=0)
                {
                        n2=n2*10+n1%10;
                        n1 /= 10;
                }
                if(n2==n)
                {
                        printf("%d\n",i);
                }
        }
        return 0;
}

/*这两种解法的思路是一样的,主要运用循环来做,关键是将这个数的平方逐步拆分,用另一个数依次得到拆分获得的数,最后判断两数是否相等*/

猜你喜欢

转载自www.cnblogs.com/lijianmin6/p/10427555.html