0025 c/c++语言 同构数

题目描述
正整数n若是它平方数的尾部,则称n为同构数。例如,6是其平方数36的尾部,76是其平方数5776的尾部,6与76都是同构数。376*376=141376,因此376也是。

输入
一个正整数n。

输出
依次从小到大打印出小于n的所有同构数,每行一个。

样例输入

10

样例输出

1
5
6

#include <stdio.h>
main( )
 
{   int n;
scanf("%d",&n);
    for(int i=1;i<n;i++)
    {   //位数有哪些可能呢?个,十,百,千。
    if(0<=i&&i<=9)//个位数,即一位数
    {   if(i==(i*i)%10)//如何表示这些位数呢?
        printf("%d\n",i);
        }
    if(10<=i&&i<=99)//十位数,即两位数
    {   if(i==(i*i)%100)
        printf("%d\n",i);
        }
    if(100<=i&&i<=999)//百位数,即三位数
    {   if(i==(i*i)%1000)
        printf("%d\n",i);
        }
    if(1000<=i&&i<=9999)//千位数,即四位数
    {   if(i==(i*i)%10000)
        printf("%d\n",i);
        }
    if(i==10000)
    {   //当i为10000时,显然不是同构数,故不作判定
        }
     }
}
上一篇:【PAT】乙级 1051 复数乘法 (15 分) c++


下一篇:C#操作XML文件