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


Problem

6/21

Sayı basamakları

Theory Click to read/hide

Görev
Bir sayı girmeli (3.000.000'den küçük olsun) ve içindeki basamak sayısını belirlemelisiniz.
 
Çö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ının tüm rakamlarını kestikten sonra sayaçta onların numarasını alacağız.

Bu algoritma şu şekilde formüle edilebilir:
Sayı sıfır olana kadar, 10 azaltın ve her seferinde sayacı 1 artırın.
  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
#include<iostream>          
2
using namespace std;        
3
main()  {          
4
  int n, count;          
5
  cin >> n;          
6
  count = 0;          
7
  while (n != 0)           
8
  {          
9
     count ++;          
10
     n = n / 10;          
11
  }          
12
  cout << "Number " << n << " contains " << count << " digits";         
13
}          

     

Program check result

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