C#编程 - 用于数字和反向数字的代码

时间:2018-04-10 20:28:46

标签: c#

我写了一个代码来查找数字的总和和数字的反转 -

static void Main(string[] args)
    {
        int number, sum = 0;
        Console.WriteLine("Enter a number:");
        number = int.Parse(Console.ReadLine());
        while (number!= 0)
        {
            int m = number % 10;
            number = number / 10;
            sum = sum + m;
        }
        Console.WriteLine("Sum of digits of the number:" + sum);
        Console.ReadLine();

        int reverse = 0;

        while (number!= 0)
        {
            reverse = reverse * 10;
            reverse = reverse + number % 10;
            number = number / 10;
        }
        Console.WriteLine("Reversed Number is:" + reverse);
        Console.ReadLine();



    }

但是,反转数字的输出为0.我检查了我的代码,我不确定它有什么问题。

2 个答案:

答案 0 :(得分:3)

您在对数字求和时修改number,因此当您尝试通过第二个循环时,number已经为0.保存输入并在第二个之前重置number循环:

Console.WriteLine("Enter a number:");
int input = int.Parse(Console.ReadLine());
number = input;

while (number!= 0)
{
    // ...
}
Console.WriteLine("Sum of digits of the number:" + sum);

number = input; // reset number back to original input

// ...

答案 1 :(得分:0)

使用LINQ还可以解决问题:

        int number = 1234567890;

        int sumOfDigits = number.ToString().Select(c => int.Parse(c.ToString())).Sum();
        int reversedNumber = int.Parse(new string(number.ToString().Reverse().ToArray()));

        Console.WriteLine($"sum of digits: {sumOfDigits}");
        Console.WriteLine($"reversed number: {reversedNumber}");