Informatică, întrebare adresată de Lacataru, 9 ani în urmă

(In C++)Se generează un şir de numere naturale ai cărui primi termeni sunt, în ordine:

1, 12, 21, 123, 231, 312, 1234, 2341, 3412, 4123, 12345, 23451,...

Cerinţe:
Deduceţi regula după care sunt generaţi termenii şirului şi scrieţi un program care să citească numerele naturale k, x, a şi b şi care să determine:

a) ultima cifră a sumei tuturor termenilor şirului care sunt formaţi din cel mult k cifre;
b) succesorul termenului x în şirul dat, x fiind un termen al şirului;
c) numărul de termeni ai şirului care au cifra cea mai semnificativă egală cu a şi nu conţin în scrierea lor cifra b.

Date de intrare
Fișierul de intrare sir5.in conţine o singură linie pe care sunt scrise cele patru numere naturale k, x, a şi b, separate prin câte un spaţiu.

Date de ieșire
Fișierul de ieșire sir5.out va conține 3 linii:

pe prima linie se va scrie un număr natural reprezentând ultima cifră a sumei tuturor termenilor şirului care sunt formaţi din cel mult k cifre;
pe a doua linie se va scrie un număr natural reprezentând succesorul termenului x în şirul dat;
pe a treia linie se va scrie un număr natural reprezentând numărul de termeni ai şirului care au cifra cea mai semnificativă egală cu a şi nu conţin în scrierea lor cifra b.
Restricții și precizări
Numerele k, x, a şi b sunt naturale nenule
1 ≤ k ≤ 9
x este un termen al şirului din enunţ şi are succesor în şir
succesorul termenului x în şir este termenul care urmează imediat după x (de exemplu, dacă x=2341 atunci succesorului lui x în şir este 3412)
1 ≤ x < 900000000
1 ≤ a ≤ 9; 1 ≤ b ≤ 9; a ≠ b
cifra cea mai semnificativă a unui număr natural este prima cifră din scrierea sa, de la stânga la dreapta (de exemplu cifra cea mai semnificativă a numărului 32156 este 3)
Pentru rezolvarea cerinţei a) se acordă 30% din punctaj, pentru cerinţa b) 40% din punctaj şi pentru cerinţa c) 30% din punctaj.



Exemplu
sir5.in

3 45123 3 6
sir5.out

0
51234
3
Explicație
Termenii şirului formaţi fiecare din cel mult k=3 cifre sunt: 1, 12, 21, 123, 231, 312. Suma lor fiind egală cu 700, pe prima linie a fişierului sir5.out se va scrie cifra 0 (ultima cifră a sumei).
Succesorul termenului 45123 este 51234, valoare care se va scrie pe a doua linie a fişierului sir5.out.
Sunt 3 numere care încep cu cifra 3 şi care nu conţin cifra 6 şi anume: 312, 3412, 34512. Astfel, numărul 3 se scrie pe a treia linie a fişierului sir5.out.

Răspunsuri la întrebare

Răspuns de ionutg38
2
Ai atasat programul C++.
Anexe:

Lacataru: ms
ionutg38: Cu placere!
Alte întrebări interesante