Module: 带条件的循环语句 - while


Problem

6/20

数字位数

Theory Click to read/hide

让我们尝试编写一个程序来解决以下问题: 你需要输入一个数字并确定其中的位数。

解决思路。
我们只需要依次从数字中截去最后一位(这可以通过将数字减少 10 次,使用整数除以 10 来完成),每次我们都需要增加计数器。 
这样一来,我们截掉所有数字后,计数器就会存储数字中的位数。
换句话说,该算法可以表述如下: 当数字不等于 0 时,将其减少 10 倍并将计数器增加 1。

<头> <正文> 程序看起来像这样: <前> ... 静态无效主要() { int n = Convert.ToInt32(Console.ReadLine()); 整数计数 = 0; 而(n!= 0) { 计数++; n = n / 10; } } 你需要很好地了解和理解这个程序,因为许多其他任务与数字计算有关一个数字。

Problem

运行程序。 
看看她的工作结果。 输出短语是否一切正常? 想想如何修复这个缺陷。
数 (n) 计数器
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!