Cifra de Control
3Fie n un numar natural citit de la tasatura. Scrieti un program care calculeaza si afiseaza cifra de control a lui n. Cifra de control se obtine calculcand suma cifrelor numarului, apoi suma cifrelor sume si tot asa pana la obtinerea unei singure cifre.
Exemplu
n=181
cf=cifra de control
1+8+1=10
1+0=1
cf=1 //cifra de control este 1
Putem rezolva problema in 2 moduri.
1) Vom pune intr-un vector cifrele numarului n, apoi vol calcula suma cifrelor pana cand vectorul va continre un singur element diferit de 0.
#include <iostream.h> #include <conio.h> int main() { int v[1000],i,c=3,n; cout<<"Dati n: ";cin>>n; do { for (i=0;i<c;i++) { v[i]=n%10; n=n/10; } n=0; for (i=0;i<c;i++) n+=v[i]; c--; } while (c!=1); if (c==1) cout<<"Cifra de control: "<<n; getch(); return 0; }
A doua metoda de rezolvare nu utilizeaza vectori, folosim doar cateva variabile.
#include <iostream.h> #include <conio.h> int main() { int n,i,s=0; cout<<"Dati n: ";cin>>n; do { s=0; while (n) { s+=n%10; n=n/10; } n=s; } while(n>9); cout<<"cifra de control:"<<s; getch(); return 0; }
Aceasta este una din problemele clasice, usurele care mie mi-au placut. Alte probleme de gen sunt: Problema Bibliotecarului, Numerele piramidale, Problema Concurs, Numere bine ordonate etc. Sper ca va placut Cifra de Control, revin cu ceva asemanator saptamana viitoare. 😉
Sursele au fost compilate si rulate cu devcpp
Gasiti sursa in format .cpp aici
cifra de control= n mod 9;(puteti verifica);
daca n mod 9=0 arunci cc:=9;
pentru 199, cifra de control este 1, nu 9, ideea ta nu e buna
cum este algoritmul de verificare daca un numar este val???