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ố,....
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++.
Đếm các chữ số của số nguyên dương n bằng C
Ta cần khai báo hai biến n là số cần đếm chữ số và temp là biến thay thế cho n để ta sử dụng nó đếm chữ số. Một biến count = 0 để lưu số chữ số của n.
Sử dụng vòng lặp do..while để yêu cầu người dùng nhập vào số nguyên dương n, nếu n < 0 thì yêu cầu nhập lại.
do { printf("\nNhập vào số nguyên n lớn hơn 0: "); scanf("%ld", &n); if(n <= 0) { printf("\n Số n phải lớn hơn 0, vui lòng nhập lại !"); } }while(n <= 0);
Tiếp đến ta gán n = temp, khi đó ta sẽ sử dụng temp để đếm số chữ số thay cho n.
Sử dụng một vòng lặp while với n != 0, trong vòng lặp ta lấy temp = temp / 10, cứ sau mỗi vòng lặp thì tăng count lên 1.
while(temp != 0) { //sau một vòng lặp thì count sẽ tăng lên 1 count++; //chia lấy nguyên cho 10, cứ một lần chia thì số n sẽ có một chữ số temp = temp / 10; }
Sau khi kết thúc vòng lặp thì ta được số chữ số là count, khi đó chỉ cần in count ra màn hình bằng printf().
Code:
#include<stdio.h> #include<math.h> int main() { //khai báo biến long temp, n; int count = 0; //sử dụng dowhile để yêu cầu người dùng nhập vào só lớn hơn 0 //nếu n < 0 thì yêu cầu nhập lại do { printf("\nNhập vào số nguyên n lớn hơn 0: "); scanf("%ld", &n); if(n <= 0) { printf("\n Số n phải lớn hơn 0, vui lòng nhập lại !"); } }while(n <= 0); //gán biến n cho temp, ta sẽ sử dụng temp để đếm các chữ số temp = n; //nếu n == 0 thì có 1 chữ số if(n == 0) count = 1; //nếu temp khác 0 thì sử dụng vòng lặp while để đếm số while(temp != 0) { //sau một vòng lặp thì count sẽ tăng lên 1 count++; //chia lấy nguyên cho 10, cứ một lần chia thì số n sẽ có một chữ số temp = temp / 10; } printf("\nSố chữ số của %ld là: %d", n, count); printf("\n--------------------------------------\n"); printf("Chương trình này được đăng tại Freetuts.net"); }
Kết quả:
Đếm các chữ số của số nguyên dương n bằng C++
Để đếm các chữ số của số nguyên dương n bằng C++ cũng tương tự như ngôn ngữ C.
Ta chỉ cần thay thế printf() và scanf() trong C bằng cout và cin trong C++. Nhớ khai báo thư viện <iostream> trước khi sử dụng nó nhé.
#include<iostream> #include<math.h> using namespace std; int main() { //khai báo biến long temp, n; int count = 0; //sử dụng dowhile để yêu cầu người dùng nhập vào só lớn hơn 0 //nếu n < 0 thì yêu cầu nhập lại do { cout<<"\nNhập vào số nguyên n lớn hơn 0: "; cin>>n; if(n <= 0) { cout<<"\n Số n phải lớn hơn 0, vui lòng nhập lại !"; } }while(n <= 0); //gán biến n cho temp, ta sẽ sử dụng temp để đếm các chữ số temp = n; //nếu n == 0 thì có 1 chữ số if(n == 0) count = 1; //nếu temp khác 0 thì sử dụng vòng lặp while để đếm số while(temp != 0) { //sau một vòng lặp thì count sẽ tăng lên 1 count++; //chia lấy nguyên cho 10, cứ một lần chia thì số n sẽ có một chữ số temp = temp / 10; } cout<<"\nSố chữ số của "<<n<<" là: " << count; cout<<"\n--------------------------------------\n"; cout<<"Chương trình này được đăng tại Freetuts.net"; }
Kết quả:
Như vậy là chúng ta đã thực hiện xong chương trình đếm các chữ số của số nguyên dương n bằng C / C++. Các bạn có thể tham khảo các bài tập khác tại Tổng hợp 1000 bài tập C / C++ nhé, chúc các bạn thành công !!!
Nguồn: freetuts.net