Tính tổng của các chữ số của một số tự nhiên n đếm xem n có bao nhiêu chữ số

Bài toántính tổng các chữ số trong một số

Đề bài: Trên ngôn ngữ lập trình C , hãy nhập vào một số nguyên dương n. Hãy viết chương trình Tính tổng các chữ số của n , in kết quả ra màn hình.

Như vậy, bài toán này sẽ giúp các bạn học được các kiến thức cơ bản nhất về nhập xuất trong lập trình C. Cách sử dụng vòng lặp toán tử chia dư, chia nguyên trong lập trình C.

Xác định input output:

input: Nhập n = 12345

output: s = 1 + 2 + 3 + 4 + 5

Ý tưởng :

  1. Khởi tạo một biến tachso để tách các chữ số của n bằng toán tử chia dư và một biến s để tính tổng bằng các số đã tách. Song song với tách số chúng ta sử dụng toán tử chia nguyên để xóa chữ số cuối của n
  2. Đặt chúng vào một vòng lặp for và chạy
  3. Đến đây thì f11 thôi 😀

Ok chỉ vậy thôi, bây giờ mình sẽ code và chú thích chi tiết ngay ở dưới.

Kết quả:

Okê xong rồi đấy :D, Vậy là mình đã giải quyết xong bài toán Tính tổng các chữ số trong một số n . Mình rất vui vì bạn đã tham khảo bài viết này của mình. Chúc bạn học tập thật tốt và từng bước từ newbie đi lên coder và trở thành developer hihi. Hãy nhớ là nền vững thì mới xây cao. Bọn mình và sếp sẽ luôn đồng hành cùng các bạn hehe. Các bạn cứ để lại bình luận nếu thắc mắc, mình xin được kết thúc bài viết tại đây.

Xem thêm bài viết về C/C++ tại đây

Giới thiệu bài toán đếm số lượng chữ số của số nguyên

Bài toán: Nhập vào một số nguyên dương n hãy đếm xem số nguyên dương n có bao nhiêu chữ số.

Ý tưởng:

  • Đầu tiên ta dùng vòng lặp whilenếu n > 10 thì tiếp tục lấy n = n /10.;
  • Với mỗi lần vòng while chạy thì ta tăng biến đếm lên một lần dem++;
  • Số lượng chữ số của số nguyên n bằng dem + 1
  • Ý tưởng tính trên là mình dựa trên công thức số lượng chữ số của một số nguyên n bằng logarit cơ số 10 cộng với một.

Code bài giải bằng C++

Sau khi chạy chương trình ta có kết quả sau:

Như mình nói ở trên số lượng chữ số của một số nguyên n bằng logarit cơ số 10 cộng với một. Vậy thì ta nên viết một hàm tính logarit cơ số 10 luôn .

Sau khi chạy chương trình trên ta cũng nhận kết quả tương tự

Bài viết của mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !

Nhập vào một số tự nhiên N. Hãy tính tổng các chữ số của nó.

Ví dụ: N = 1682 Tong cac chu so cua N la: 17 ( = 1 + 6 + 8 + 2 )

Yêu cầu: Input: N là số nguyên bất kỳ, N có khả năng là số lớn

Output: S, la tổng các chữ số của N

Đếm số lượng chữ số của số nguyên dương n bằng C / C++

Trong bài viết này chúng ta sẽ thực hiện chương trình đếm các chữ số của số nguyên dương n bằng C / C++. Ví dụ 1234 có 4 chữ số, 297429 có 6 chữ số,....

Tính tổng của các chữ số của một số tự nhiên n đếm xem n có bao nhiêu chữ số

Tính tổng của các chữ số của một số tự nhiên n đếm xem n có bao nhiêu chữ số
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Mình sẽ thực hiện hai chương trình để đếm các chữ số của số nguyên dương n bằng hai ngôn ngữ khác nhau là C và C++.

Tính tổng của các chữ số của một số tự nhiên n đếm xem n có bao nhiêu chữ số

1 tháng trước

Source code thì bạn phải tự viết nhé, không ai làm hộ cho đâu.
Thuật toán thì mình chia sẻ một cách mà mình nghĩ ra như thế này:
Đầu tiên là về số nguyên tố là số chỉ chia hết cho 1 và chính nó. xây dựng 1 method để kiểm tra xem 1 số có phải là số nguyên tố hay ko?

int isPrimeNumber(int x) { for(int i = 2; i < x; i++) { if(x % i == 0) { // neu chia het cho bat ky so nao ngoai 1 va chinh no, thi no khong phai la so nguyen to return 0; } } return 1; }

Bây giờ việc tiếp theo là phải check xem 1 số có thỏa mãn điều kiện tổng các chữ số bằng S cho trước hay không. Cách làm là tách số x thành các chữ số bằng cách chia cho 10, lấy phần dư. Ta xây dựng hàm check

int isSum(int x) { int* i; int index = 0; while(x > 0) { i[index] = x % 10; x = (int) (x / 10); index++; } int sum = 0; for(int j = 0; j < index; j++) { sum += i[j]; } if(sum == S) return 1; return 0; }

Với 2 method trên, ta sẽ sử dụng để check các số có N chữ số thỏa mãn 2 đk trên. Với N chữ số, ta phải duyệt tất cả các số từ N*10 => (N+1)*10 - 1

Từ đó ta có vòng for :

for(int i = N*10; i < (N+1) * 10; i++) { if( isPrimeNumber(i) == 1 && isSum(i) == 1) { printf("%d",i); // i la so thoa man dieu kien cua bai toan } }

Cú pháp của C++ mình không nhớ rõ lắm nữa, nên bạn chỉnh lại cú pháp cho đúng nhé

Video liên quan

Đề bài

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

Tính tổng của các chữ số của một số tự nhiên n đếm xem n có bao nhiêu chữ số