Viết chương trình tính tổng và tích các chữ số của một số có 3 chữ số

Bài tập Python: Viết chương trình tính tổng của các chữ số của môt số nguyên n trong Python. Số nguyên dương n được nhập từ bàn phím. Ví dụ:

Viết chương trình tính tổng và tích các chữ số của một số có 3 chữ số


Lời giải

Với bài toán này chúng tôi sử dụng phép chia lấy phần dư và chia lấy phần nguyên để giải quyết.

Ví dụ tổng các chữ số của 1234 sẽ là: (1234 % 10) + (123 % 10) + (12 % 10) + (1 % 10) = 4 + 3 + 2 + 1 = 10.

Bài tập cơ bản này ta có thể có hướng giải quyết là sử dụng vòng lặp while trong ngôn ngữ lập trình C.

Đầu vào sẽ là một biến nguyên dương N,  yêu cầu của bài toán là tính tổng các chữ số của N. Ví dụ N=234 suy ra tổng các chữ số của N là 2 + 4 +3 = 9.

2. Lời giải

Để giải được bài tập tính tổng các chữ số của số nguyên dương N trong C bạn phải có kiến thức về toán học cơ bản, có kiến thức về lập trình C cơ bản.

Các bước thực hiện bài toán như sau:

Bước 1: Khai báo biến int N, khai báo biến int gan = N để gán giá trị của N, khai báo biến int tong = 0 để tính tổng các chữ số của N

Bước 2: Nhập vào N với điều kiện N>=0, nếu không yêu cầu nhập lại.

Bước 3: Ta sử dụng vòng lặp while với điều kiện là khi biến gan còn khác 0 thì vòng lặp tiếp tục, trong vòng lặp ta cho biến tong tăng lên gan%10 mỗi khi lặp, còn biến gan chia 10 mỗi khi lặp.

Bước 4: In biến tong ra màn hình.

Chương trình giải bài tập tính tổng các chữ số của số nguyên dương N trong C như sau :

#include
#include
int main()
{
    //khai bao bien N
    int N;
    //khai bao bien gan
    int gan;
    //Khai bao bien dem = 0 
    int tong = 0;
    do
    {
    	//Nhap vao du lieu cua N
        printf("\nNhap N: ");
        scanf("%d", &N);
    }while(N < 0 && printf("\nLoi: n >= 0 !"));//Neu N<0 yeu cau nhap lai
    // khai bao gan = N
    gan = N;
    while(gan != 0)//Neu biên gan con khac 0 thuc hien vong lap
    {
        tong = tong + gan%10;//bien tong tang len gan%10
        gan = gan / 10;//bien gan chia 10
    }
    //in bien tong ra man hinh
    printf("\nTong cac chu so cua %d la %d",N, tong);
}

Ví dụ tôi nhập N = 1234

Kết quả:

Nhap N: 1234Tong cac chu so cua 1234 la 103. Tổng kết

Để thực hiện giải bài tập tính tổng các chữ số của số nguyên dương N trong C bạn đọc cần phải có kiến thức cơ bản về ngôn ngữ lập trình C, bạn cần nắm vững cách nhập xuất căn bản và các cách sử dụng vòng lặp trong C và các phép toán học cơ bản.

Hướng dẫn: Để tính tổng các chữ số của một số nguyên dương, chúng ta sẽ thực hiện phép chia lấy dư số đó cho 10. Sau mỗi lần thực hiện phép chia lấy dư này, chúng ta sẽ cộng các số dư đó lại và chia tiếp số nguyên dương đó cho 10. Sau đó, quay lại thực hiện các bước vừa rồi, chương trình sẽ kết thúc khi số đó = 0.

Các số thoả mãn chỉ có 123 và các hoán vị của nó (132, 213, 231, 312, 321), nên cho 6 câu lệnh printf() cho 6 hoán vị là xong.

Chứng minh:
Gọi số thoả mãn đề bài có dạng là abc (a > 0), với a,b,c là các số nguyên không âm. Theo đề bài:

  • a + b + c = abc (1)

Nếu 1 trong 2 số b và c bằng 0, không mất tính tổng quát, giả sử b = 0. Điều kiện (1) trở thành: a + c = 0, mà a > 0 nên c < 0, trái điều kiện c là số nguyên không âm.
Do đó a,b,c đều là các số nguyên dương, a > 0, b > 0, c > 0 (2)

Với điều kiện (2) thì vai trò a,b,c là như nhau, với 1 cặp thoả mãn thì các hoán vị của nó cũng thoả mãn. Vì vậy, không mất tính tổng quát, giả sử 0 < a ≤ b ≤ c (3)

Biến đổi từ (1): a(bc - 1) = b + c (4)

Trường hợp 1: a = 1. Khi đó (4) trở thành:

  • bc - 1 = b + c
  • bc - b - c + 1 = 2
  • (b - 1)(c-1) = 2 (5)

(5) có 1 nghiệm duy nhất b - 1 = 1, c - 1 = 2, hay b = 2, c = 3. Một nghiệm thoả mãn (a,b,c) = (1,2,3)

Trong bài viết này, TTnguyen sẽ giúp các bạn hiểu rõ hơn tìm phần nguyên và phần dư của C/C++ qua bài toán tính tổng các chữ số của một số nguyên. Đây là một dạng bài tập cơ bản áp dụng toán tử trong lập trình.

Xem thêm: 

  • tìm chữ số lớn nhất của một số nguyên dương N gồm 3 chữ số
  • viết chương trình tính số ngày trong tháng

Nội dung

1.Tính tổng các chữ số của một số nguyên được nhập từ bàn phím

Đề bài: Viết chương trình nhập vào một số nguyên dương N có 2 chữ số từ bàn phím, xuất ra màn hình tổng các chữ số của N. Ví dụ: Nhập N = 48, kết quả in ra màn hình là 4+8=12.

2.Phân tích bài toán

A. Input: số nguyên dương N có 2 chữ số
B.Output: Tổng 2 chữ số S
C. Process:
Bước 1: Khai báo biến chương trình
N, a,b, S: int
Bước 2: Nhập từ bàn phím một số nguyên dương N
Bước 3: Thực hiện tính toán
a = N/10; //Chữ số thứ nhất
b = N%10; //Chữ số thứ hai
S=a+b
Bước 4: In kết quả lên màn hình.

3.Code

#include

using namespace std;
int main() {
    int s, n, a, b;
    do {
      cout << "nhap so nguyen duong n co 2 chu so: ";
      cin >> n;
    } while (n < 10); //neu nhap so am hoac so co 1 chu so thi yeu cau nhap lai a=n/10; //chu so thu 1 b=n%10; //chu so thu 2 s=a+b; cout<<"Tong 2 chu so la:"<

Mở rộng bài toán: Viết chương trình tính tổng một số được nhập từ bàn phím

#include 

using namespace std;
int main() {
  int so;
  int soTemp;
  int tong = 0;
  cout << "Nhap so: ";
  cin >> so;
  soTemp = so;
  while (soTemp != 0) {
    tong += soTemp % 10;
    soTemp /= 10;
  }
  cout << "Tong cac chu so cua so " << so << " la " << tong << endl;
  return 0;
}

4.Kết quả

Viết chương trình tính tổng và tích các chữ số của một số có 3 chữ số

Viết chương trình tính tổng và tích các chữ số của một số có 3 chữ số

Trên đây là bài viết về cách giải bài toán viết chương trình tính tổng của một số nguyên dương N được nhập từ bàn phím ngôn ngữ lập trình C/C++. Bài viết chỉ mang tính chất tham khảo thôi nha. Nếu có điều gì thắc mắc thì đừng ngần ngại liên hệ với mình nhé :v