【C#】A + B Problem II

namespace CalculatorAB2
{
    #region using direction

    using System;
    using System.Linq;

    #endregion

    class Program
    {
        static void Main(string[] args)
        {
            Int32 caseCount = 0;
            var input = Console.ReadLine();
            if (Int32.TryParse(input, out caseCount) == true)
            {
                for (Int32 flag = 0; flag < caseCount; flag++)
                {
                    input = Console.ReadLine();
                    var param = input.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    if ((param != null) && (param.Length == 2))
                    {
                        var a = param[0].Length >= param[1].Length ? param[0].ToArray() : param[1].ToArray();
                        Array.Reverse(a);
                        var b = param[0].Length < param[1].Length ? param[0].ToArray() : param[1].ToArray();
                        Array.Reverse(b);
                        Int32 carry = 0;
                        for (Int32 index = 0; index < b.Length; index++)
                        {
                            var result = (Convert.ToInt32(a[index]) - 48) + (Convert.ToInt32(b[index]) - 48) + carry;
                            carry = result / 10;
                            result %= 10;
                            a[index] = Convert.ToChar(result + 48);
                        }
                        for (Int32 index = b.Length; index < a.Length; index++)
                        {
                            if (carry != 0)
                            {
                                var result = (Convert.ToInt32(a[index]) - 48) + carry;
                                carry = result / 10;
                                result %= 10;
                                a[index] = Convert.ToChar(result + 48);
                            }
                        }
                        Array.Reverse(a);
                        var sum = new String(a);
                        if (carry != 0)
                        {
                            sum = sum.Insert(0, "1");
                        }
                        Console.WriteLine("Case {0}:", flag + 1);
                        Console.WriteLine("{0} + {1} = {2}", param[0], param[1], sum);
                    }
                    if (flag < (caseCount - 1))
                    {
                        Console.WriteLine();
                    }
                }
            }            
        }
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值