Module: (Java) Câu lệnh lặp có điều kiện - while


Problem

6/21

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 phải nhập một số (đặt số này nhỏ hơn 3.000.000 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 cắt hết các số thì trong bộ đếm ta sẽ được số chữ số trong số.
Theo một cách khác, thuật toán có thể được xây dựng như sau:
CHO ĐẾN KHI SỐ KHÔNG PHẢI LÀ SỐ 0, HÃY GIẢM SỐ NÓ 10 LẦN VÀ TĂNG SỐ ĐẾM LÊN 1.

<đầu> Chương trình sẽ trông như thế này. #include<iostream> sử dụng không gian tên std; chủ yếu() { intn, đếm; cin>> N; đếm = 0; trong khi (n != 0) { đếm ++; n = n/10; } cout << "Số-" <<n<< " chứa " << đếm << " chữ số";   } Bạn cần phải biết chương trình này bằng trái tim, bởi vì. trên cơ sở của nó, nhiều vấn đề khác liên quan đến việc tính toán các số bằng chữ số được giải quyết.

Problem

Chạy chương trình. 

Hãy nhìn vào kết quả công việc của cô ấy.
Mọi thứ đều ổn trong cụm từ đầu ra.
Hãy suy nghĩ về cách bạn có thể khắc phục vấn đề này.
số (n) bộ đếm
123 0
12 1
1 2
0 3
1
import java.util.Scanner;  
2


                                                   
3
public class Main  
4
{  
5
    public static void main(String[] args) {  
6
        Scanner in = new Scanner(System.in);  
7
        int n, count;  
8
        n = in.nextInt();  
9
        count = 0;  
10
        while (n != 0)  
11
        {  
12
            count ++;  
13
            n = n / 10;  
14
        }  
15
        System.out.println("Number "+ n+ " contains " + count + " digits");  
16
    }  
17
}  

     

Program check result

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