当前位置:编程学习 > C#/ASP.NET >>

谁能帮我解决这个问题,我给分

CSDN怎么不能上传文件啊,我给出
地址
(说明绝不是什么病毒)
题目内容全在压缩文件里
我用的是vs2008的,你可以只放入.cs文件到其它版本里面编译 --------------------编程问答-------------------- 要求说出来费不了多少时间吧。
给你个反转数字的方法参考一下:

        static int getRevserNum(int i)
        {
            char[] ch = i.ToString().ToCharArray();
            Array.Reverse(ch);
            return Convert.ToInt32(new String(ch));
        }
--------------------编程问答-------------------- 参考一下:

    class Program
    {
        static char[] judgeChar = { '5', '6', '7', '8', '9' };
        static int notSymmetrical,Times;
        static void Main(string[] args)
        {
            for (int i = 0; i < 15000; i++)
            {
                Times = 0;
                if (!judgeSymmetricalNumber(i.ToString())) notSymmetrical++;
                    Console.WriteLine(i);
            }
            Console.WriteLine(notSymmetrical);
            Console.ReadLine();
        }
        //是否符合要求
        static bool judgeSymmetricalNumber(string str)
        {
            if (isSymmetrical(str)) return true;
            while(Times < 66)
            {
                Times++;
                string s = GetSum(str,getReveserStr(str));
                return judgeSymmetricalNumber(s);
            }
            return false;
        }
        //获取翻转字符串
        static string getReveserStr(string str)
        {
            char[] ch = str.ToCharArray();
            Array.Reverse(ch);
            return new String(ch);
        }
        //判断是否为对称结构
        static bool isSymmetrical(string str)
        {
            if(str.IndexOfAny(judgeChar) == -1) return true;
            else return str.Equals(getReveserStr(str));
        }
        //字符串相加
        static string GetSum(string strNumA, string strNumB)
        {
            StringBuilder sb = new StringBuilder(30);
            int flag = 0;
            for (int i = 0; i < strNumB.Length; i++)
            {
                int temp = strNumA[i] + strNumB[i] - 96;               
                temp += flag;
                flag = (temp > 9 ? 1 : 0);
                sb.Append(temp % 10);
            }
            if (flag == 1) sb.Append(1);
            string strs = getReveserStr(sb.ToString());
            return strs;
        }
    }
--------------------编程问答-------------------- 你的错误在判断是否均匀结构的方法上:

/// <summary>
        /// 此数是不是小于5,如果是小于5肯定是对称
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        bool lessThanFive(string num)
        {
            chs = ConvertStrToArray(num);

            for (int i = 0; i < chs.Length; i++)
            {
                if (chs[i] >= 5)
                    return false;
            }

            return true;
        }


包含大于5的数字的时候也可以是对称结构的  如11611
具体参考楼上
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,