Module: (Java) Koşullu döngü deyimi - while


Problem

6/21

Sayı basamakları

Theory Click to read/hide

Aşağıdaki problemi çözmek için bir program yazmaya çalışalım:

Bir sayı girmelisiniz (3.000.000'den küçük olsun ve içindeki basamak sayısını belirleyin.

Çözüm fikri


Sadece sayıdan son basamağı sırayla kesmemiz gerekiyor (bu, tamsayıyı 10'a bölerek sayıyı 10 kat azaltarak yapılabilir) ve her seferinde sayacı artırmamız gerekiyor. 
Sonuç olarak sayıcıdaki tüm sayıları kestikten sonra sayının basamak sayısını alacağız.
Başka bir şekilde, algoritma şu şekilde formüle edilebilir:
SAYI SIFIR DEĞİLENE KADAR 10 KAT AZALTIN ​​ve SAYACI 1 ARTIRIN.

sayı (n) sayaç Program böyle görünecek.
#include<iostream>
ad alanı std kullanarak;
ana()
{
int, sayım;
cin>> N;
sayı = 0;
iken (n != 0)
  {
  sayı++;
  n = n / 10;
  }
cout 
Bu programı ezbere bilmeniz gerekiyor, çünkü. temelde, sayıların rakamlarla hesaplanmasıyla ilgili diğer birçok problem çözülmüştür.

Problem

Programı çalıştırın. 

Çalışmasının sonucuna bakın.
Çıktı ifadesinde her şey yolunda mı?
Bu sorunu nasıl çözebileceğinizi düşünün.
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!