Bookish Girl
Bookish Girl

Reputation: 1

C# programming-code for sum of digits and reverse number

I wrote a code to find the sum of the digits and the reverse of a number-

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();



    }

but, the output for reversed number comes as 0. I checked my code, and I am not sure what is wrong with it.

Upvotes: 0

Views: 3439

Answers (2)

Harry Preiß
Harry Preiß

Reputation: 41

There's also a possible solution to the problem using 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}");

Upvotes: 0

clcto
clcto

Reputation: 9648

You modify number as you sum the digits so when you try to go through the second loop, number is already at 0. Save off the input and reset number before the second loop:

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

// ...

Upvotes: 3

Related Questions