(C#)数字反转

来源:互联网 发布:java 上传文件到http 编辑:程序博客网 时间:2024/06/05 19:04
/*数字反转,如 12345->54321 */using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{    class Program    {        static int ReverseInt(int intToBeReversed)        {            int num = intToBeReversed;            if (num == 0)                return 0;            bool flag = false;            if (num < 0)            {                num = 0 - num;                flag = true;            }            int a, b, result = 0;            int tmp = 0;            while (num > 0)            {                a = num / 10;                b = num - a * 10;                tmp = result;                result *= 10;                if (result < tmp)                {                    throw new System.ArgumentOutOfRangeException("intToBeReversed=" + intToBeReversed);                }                tmp = result;                result += b;                if (result < tmp)                {                    throw new System.ArgumentOutOfRangeException("intToBeReversed=" + intToBeReversed);                }                num = a;            }            if (flag)            {                return 0 - result;            }            else            {                return result;            }        }        // just for test        static long M(int num, int a)        {            long result = 1L;            for (; a > 0; a--)            {                result *= num;            }            Console.WriteLine(result);            return result;        }        static void Main(string[] args)        {            Console.WriteLine(ReverseInt(12345));            Console.WriteLine(ReverseInt(123400));            Console.WriteLine(ReverseInt(0));            Console.WriteLine(ReverseInt(-123456));            Console.WriteLine(ReverseInt(1000000002));            Console.WriteLine(ReverseInt(1000000003));//exception            Console.WriteLine(ReverseInt((int)M(2, 31) - 1));//exception        }    }}

原创粉丝点击