Module: Câu lệnh lặp với điều kiện - while


Problem

6/20

Số lượng ký tự

Theory Click to read/hide

Hãy thử viết một chương trình để giải bài toán sau: bạn cần nhập một số và xác định số chữ số trong đó.

Ý tưởng giải pháp.
Chúng ta chỉ cần tuần tự cắt bỏ chữ số cuối cùng của một số (điều này có thể được thực hiện bằng cách giảm số đó đi 10 lần, sử dụng phép chia số nguyên cho 10) và mỗi lần chúng ta cần tăng bộ đếm. 
Kết quả là sau khi chúng ta cắt hết các số, bộ đếm sẽ lưu số chữ số của số đó.
Theo một cách khác, thuật toán có thể được xây dựng như sau: trong khi số không bằng 0, hãy giảm nó đi 10 lần và tăng bộ đếm lên 1.

<đầu> Chương trình sẽ như sau: ... khoảng trống tĩnh Main() { int n = Convert.ToInt32(Console.ReadLine()); số int = 0; trong khi (n != 0) { đếm ++; n = n/10; } } Bạn cần biết và hiểu rõ về chương trình này vì còn rất nhiều tác vụ khác liên quan đến tính toán theo chữ số của một số.

Problem

Chạy chương trình. 
Hãy xem kết quả công việc của cô ấy. Mọi thứ có ổn trong cụm từ đầu ra không? Hãy nghĩ về cách bạn có thể khắc phục lỗi này.
số (n) bộ đếm
123 0
12 1
1 2
0 3
1
using System;   
2
class Program {   
3
    static void Main() {   
4
        int n = Convert.ToInt32(Console.ReadLine());   
5
        int count = 0;   
6
        while (n != 0) {   
7
            n /= 10; // краткая запись n = n / 10   
8
            count++;   
9
        }   
10
        Console.WriteLine(n + " contains " + count + " digits");   
11
    }   
12
}   

     

Program check result

To check the solution of the problem, you need to register or log in!