回文数字判断(递归版本)

/// <summary>
        
/// 判定给定num是否是回文数字
        
/// </summary>
        
/// <param name="num">待判断数字</param>
        
/// <param name="digistsNums">num位数</param>
        
/// <returns></returns>
        public static bool Judge(int num, int digistsNums)
        {
            
// 递归结束条件
            if (digistsNums <= 1)
                
return true;
            
else
            {
                
// 否则开始判断,分离首位和末尾
                int last = num % 10;
                
int first = num / (int)Math.Pow(10, (digistsNums - 1));
                
int newNum = (num - last - first * ((int)Math.Pow(10, (digistsNums - 1)))) / 10;
                
// 如果首位和末尾的值不相等的话 ,返回false
                if (last != first)
                    
return false;
                
else
                    
// 否则开始递归
                    return Judge(newNum, digistsNums - 2);
            }
posted @ 2011-03-15 11:06  qiang.xu  阅读(636)  评论(0编辑  收藏  举报