【欧拉题四】三位数乘积所得的最大回文数


题目

 

A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 ×99.

Find the largest palindrome made from the product of two 3-digit numbers.

 

代码 

 using System;

using System.Collections.Generic;

/*
 * 
 * 从 X1=999 ,X2=999
 * 判断乘积是否回文转换成字符串, 
 * 依次减 X1和X2  
 * 
 * 
*/
namespace OulerProblem
{
     public  class Problem4
    {
         
         public  static  string  q4 ()
        {
            List< int> list= new List< int> ();
             int x1 =  999, x2 =  999;
             bool isok =  false;
             for ( int k = x1 ; k >=  1; k--) {                
                 for ( int j = x2 ; j >=  1; j--) {
                    
                     string palNum = (k * j).ToString ();
                     
                    isok = isStringP (palNum);
                     if (isok) {
                        list.Add(k*j);
                         
                    }     
                }
                     
                
            }
                 
                list.Sort();
            
             return  ""+list[list.Count- 1] ;    
        }

         public  static   bool isStringP ( string palNum)
        {
             bool isok =  false;
             var array1 = palNum.ToCharArray ();
             int last = array1.Length -  1;
             int i =  0;
         
             while ( true) { // 单个字符相等                
                 if (array1 [i] != array1 [last - i]) {                     
                     break;
                }  
                 if (i == array1.Length - i || i == array1.Length - i -  1) {                         
                    isok =  true;
                     break;
                }                
                i++;
            }
             return isok;
        }

         public  static  void test ()
        {
             //     Console.WriteLine (isStringP ((99 * 91).ToString ()));
            
             var t1 = DateTime.Now;
            Console.WriteLine ( "   " + q4 () +  "  cast time  " + (DateTime.Now - t1).TotalSeconds);

        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值