Sunteți pe pagina 1din 1

Cinci probleme cu cifrele unui numar si rezolvarile lor elementare

1.Sa se afiseze in ordine descrescatoare prefixele unui numar. Exemplu: pentru n=3076 avem 3076 307 30 3 'deea: "(aiem$ pe rand cate o cifra de la sfarsit 2.Sa se afiseze in ordine crescatoare sufixele unui numar.Exemplu: pentru n=3076 avem 6 76 076 3076 'deea: )alculam sufixul ca rest la impartirea dintre * si o putere a lui 10 Citeste N '$ While('()N) { ''*$0 Scrie N+', ! ! & 3. Sa se afle suma cifrelor unui numar. De exemplu pentru n=3076 avem 6 7 0 3=16 'deea: +rocedam ca la 1, doar ca in loc sa scriem - vom adau#a unei varia%ile S initial e#ala cu 0 ultima cifra din prefixul Citeste N S0 XN While(X>0) { SS,X+$0 X"X#$0% & Scrie S !.Sa se afle "o#linditul$ unui numar. De exemplu daca n=3076 atunci vom o%tine 6703 'deea: +rocedam ca la 3, doar ca in loc sa adunam ultima cifra din prefixul - lui S , o vom "lipi$ la dreapta lui S Citeste N S0 XN While(X>0) { SS*$0,X+$0 X"X#$0% & Scrie S &. Sa se afle cea mai mica sic ea mai mare cifra a unui numar. De exemplu pentru n=3076 vom o%tine cmin=0 si cmax=7 'deea: +rocedam asemanator cu 3

Citeste N XN While(X>0) { Scrie X, ! X"X#$0% &

Citeste N C-.X0 C-/N0 XN While(X>0) { 1X+$0 if(1>C-.X) {C-.X1& if(1(C-/N) {C-/N1& X"X#$0% & Scrie C-/N, !, C-.X

2inclu3e(st3io4h> int N,X5 int main() { printf(!N) )5 scanf(!+3 ,6N)5 X)N5 7hile (X>0) { printf(!+3 !,X)5 X)X#$05 & printf(!8n )5 return 05 &

2inclu3e(st3io4h> int N,'5 int main() { printf(!N) )5 scanf(!+3 ,6N)5 ')$5 7hile ('()N) { ')'*$05 printf(!+3 !,N+')5 & printf(!8n )5 return 05 &

2inclu3e(st3io4h> int N,X,S5 int main() { printf(!N) )5 scanf(!+3 ,6N)5 S)05 X)N5 7hile (X>0) { S)S,X+$05 X)X#$05 & printf(!+3 ,S)5 printf(!8n )5 return 05 &

2inclu3e(st3io4h> int N,X,S5 int main() { printf(!N) )5 scanf(!+3 ,6N)5 S)05 X)N5 7hile (X>0) { S)S*$0,X+$05 X)X#$05 & printf(!+3 ,S)5 printf(!8n )5 return 05 &

2inclu3e(st3io4h> int N,X,1,C-/N,C-.X5 int main() { printf(!N) )5 scanf(!+3 ,6N)5 C-.X)05 C-/N)05 X)N5 7hile (X>0) { 1)X+$05 if(1>C-.X){C-.X)15& if(1(C-/N){C-/N)15& X)X#$05 & printf(!+3 +3 ,C-/N,C-.X)5 printf(!8n )5 return 05 &

9bservatie: $) 'ro;ramele scrise in limba< C vor functiona correct 3oar pentru numere cel mult e;ale cu =>0004 'ro;ramele pot fi usor mo3ificate astfel incat sa functioneze correct si pentru numere cel mult e;ale cu > miliar3e (sau chiar ? miliar3e), 3ar pentru aceasta vor trebui facute mo3ificari asupra tipurilor variabilelor 5 in loc 3e int N,X5 vom pune lon; N,X5 iar la citire in loc 3e +3 vom scrie +l3 >) 'roblemele propuse pot fi rezolvate si prin alti al;oritmi, cei prezentati fiin3 3oar e@emple 3e rezolvare =)Aoate rezolvarile pentru $,=,?,B folosesc aceeasi i3Ce 3e baza pentru a parcur;e cifrele D !prelucrarea, apoi taierea ultimei cifre , iar rezolvarea > foloseste meto3a sirului 3e puteri ale lui $0 , este 3eci !altfel

S-ar putea să vă placă și