Sa se determine cate cifre sunt utilizate in scrierea numerelor din intervalul [a,b], a si b se citesc de la tastatura.(exp+program C++)
URGENT DAU COROANA
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int a, b, i, x, k;
int main ()
{
cout<<"a="; cin >> a;
cout<<"b="; cin >> b;
for (i = a; i <= b; i ++) {
x = i;
while (x > 0) {k++; x=x/10;}
}
cout << k;
return 0;
}
Explicație:
#include <iostream>
#include <iostream>using namespace std;
#include <iostream>using namespace std;int a, b, x, i, k;
in primul rand, k este variabila in care se retine numarul de cifre; k este variabila globala (declarata inainte de functia main) deci este initializata cu 0
int main ()
int main (){
int main (){cout<<"a="; cin >> a;
se citeste a
cout<<"b="; cin >> b;
se citeste b
for (i = a; i <= b; i ++) {
se parcurg numerele de la a la b (i-urile)
x = i;
se atribuie mereu valoarea unui "i" altei variabile-adica in variabila x se retine valoarea lui i
while (x > 0) {
cat timp exista cifre in x (cat timp x>0)
k++;
se mareste cu o unitate numarul total de cifre deoarece cu fiecare parcurgere a lui while se mai gaseste o cifra in x (pana nu mai raman)
x=x/10;
se elimina ultima cifra a lui x
}
}}
}}cout << k;
se afiseaza numarul total de cifre
return 0;
return 0;}
Exemplu:
a=15
b=26
i va lua valorile 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26
in total sunt 24 de cifre (12 numere a cate 2 cifre fiecare)
ca sa intelegi mai bine cum merge acel while:
initial k = 0
sa luam primul "x" ca fiind 15
pentru ultima cifra a lui x (adica 5) k creste cu o unitate si devine 1
x = x/10 adica i devine 1
pentru ultima cifra a lui x (adica 1) k creste o unitate si devine 2
x = x/10 adica x devine 0 si nu se mai executa while