【C#】 迴圈小練習_自守數(Automorphic Numbe)

2階的自守數(也就是開平方)

如果某個數的平方尾端幾位數剛好等於這個數,就稱這個數字為自守數。
例如:( 5 * 5 = 25 )、( 25 * 25 = 625 )  
由於字串比較好操作,所以將數字轉成字串後再進行比較
依據定義分析,就是驗證 x 的平方 m ,如果 m 的最後幾位數等於 x ,那麼 x 就是自守數。

 class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("請輸入整數上限:");
            int x = Convert.ToInt32(Console.ReadLine());
                       
            //運行的程式
            for (int i = 1; i < x; i++)
            {
                chkNum(i);
            }
            
            Console.ReadLine();
          
        }

        public static void chkNum(int x)
        {
            //將數字轉為字串
            string str = x.ToString();
            //計算數字的平方,再轉成字串
            string str2 = (x * x).ToString();
            //取出x平方字串的尾數,與x字串等長的字串
            string last = str2.Substring(str2.Length - str.Length);

            //假如字串箱等,就是自守數
            if (last.Equals(str))
            {
                Console.WriteLine(String.Format("{0} * {0} = {1}  : {2} 是自守數 ", str, str2, last));
            }

        }

    }

結果: 


 

 

 

 

 

 

水滴可成涓流,涓流可成湖泊大海。
汲取累積知識,將知識堆積成常識;將常識探究成學識;將學識簡化為知識;授人自省。