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ụ:


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], 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 > 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

Chủ Đề