Cách tính tổng các chữ số của một số trong C#
Trong bài viết này mình sẽ hướng dẫn các bạn cách tính tổng các chữ số của một số trong C#. Đây là một bài toán thường gặp khi bắt đầu học một ngôn ngữ lập trình, vì nó rèn luyện tính logic cho bạn.
Ví dụ: ta có số 123 thì tổng các chữ số của nó bằng 1 + 2 + 3 = 6.
1. Tính tổng các chữ số của một số trong C#
Trước khi đi vào viết chương trình để tính tổng các chữ số, các bạn cùng xem qua thuật toán của nó đã nhé.
- Bước 1: Lấy số cần tính từ người dùng.
- Bước 2: Lấy phần dư và phần nguyên của số đó bằng cách thực hiện các phép chia.
- Bước 3: Tính tổng phần dư của số.
- Bước 4: Chia số cho 10
- Bước 5: Lặp lại bước hai khi số lớn hơn 0
using System; namespace ConsoleApp5 { class Program { static void Main(string[] args) { Console.Write("Nhap vao so can tinh tong: "); int number = int.Parse(Console.ReadLine()); int sum = 0, reminder; while (number > 0) { reminder = number % 10; sum = sum + reminder; number = number / 10; } Console.WriteLine($"Tong : {sum}"); Console.WriteLine($"\n ----- Chuong trinh nay duoc dang tai Freetuts.net ----\n"); Console.ReadKey(); } } }
Kết quả:
Bài viết này được đăng tại [free tuts .net]
2. Tính tổng các chữ số của một số sử dụng đệ quy
Trong ví dụ này mình sẽ thực hiện chương trình tính tổng các chữ số của một số sử dụng đệ quy. Để làm được việc đó minh sẽ thực hiện tạo một hàm SumOfDigits()
để tính tổng các chữ số của số được truyền vào.
Sau đó gọi nó ở hàm main() để tính rồi hiển thị ra màn hình.
using System; namespace ConsoleApp5 { class Program { static void Main(string[] args) { Console.Write("Nhap vao so can tinh tong: "); int number = int.Parse(Console.ReadLine()); int sum = SumOfDigits(number); Console.WriteLine($"Tong : {sum}"); Console.WriteLine($"\n ----- Chuong trinh nay duoc dang tai Freetuts.net ----\n"); Console.ReadKey(); } static int SumOfDigits(int number) { if (number != 0) { return (number % 10 + SumOfDigits(number / 10)); } else { return 0; } } } }
Kết quả:
3. Tính tổng các chữ số của một số sử dụng linq
Đầu tiên ta cần chuyển đổi số nguyên thành một chuỗi. Như chúng ta đã biết thì một chuỗi là một mảng các ký tự, vì vậy ta sử dụng toán tử Select để lặp qua mảng.
Đối với mỗi chữ số, đầu tiên sẽ phân tích cú pháp nó thành một chuỗi, sau đó phân tích thành một một số nguyên. Gửi enum kết quả đến một mảng int[]. Cuối cùng sử dụng phương thức Sum() để tính tổng các chữ số trong mảng int[].
*Lưu ý: Ta cần phai báo thư viện LinQ trước khi sử dụng Select nhé System.Linq;
using System; using System.Linq; namespace ConsoleApp5 { class Program { static void Main(string[] args) { Console.Write("Nhap so can tinh: "); int number = int.Parse(Console.ReadLine()); int sum = number.ToString().Select(digit => int.Parse(digit.ToString())).ToArray().Sum(); Console.WriteLine($"Tong : {sum}"); Console.WriteLine($"\n ----- Chuong trinh nay duoc dang tai Freetuts.net ----\n"); Console.ReadKey(); } } }
Kết quả:
Như vậy là chúng ta đã thực hiện xong chương trình tính tổng các chữ số của một số theo nhiều cách khác nhau. Các bạn hãy luyện tập nhiều để sử dụng nó thành thạo nhé, chúc các bạn thành công !!!