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
kcifre; - 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 cifrab.
Restricții și precizări
- Numerele
k,x,aşibsunt naturale nenule 1 ≤ k ≤ 9xeste 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=2341atunci succesorului luixîn şir este3412) 1 ≤ x < 9000000001 ≤ 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
32156este3) - 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=3cifre sunt:1,12,21,123,231,312. Suma lor fiind egală cu700, pe prima linie a fişierului sir5.out se va scrie cifra0(ultima cifră a sumei). - Succesorul termenului
45123este51234, valoare care se va scrie pe a doua linie a fişieruluisir5.out. - Sunt
3numere care încep cu cifra3şi care nu conţin cifra6şi anume:312,3412,34512. Astfel, numărul3se scrie pe a treia linie a fişieruluisir5.out.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Sir5:
/* autor prof.Minca Carmen
Liceul Teoretic "Ion Neculce" Bucuresti */
#include<fstream>
using namespace std;
int main()
{
ofstream g("sir5.out");
long x,y,p=1,z;
int k,s=0,a,b,i,c,sa;
ifstream f("sir5.in");
f>>k>>x>>a>>b;
s=1; sa=1;
for(i=2;i<=k;i++)
{
s=(s+sa+i)%10;
sa=(sa+i)%10;
}
g<<s<<endl;
//cerinta b)
y=x; k=1;
while(y>9)
{ k++; y/=10; p=p*10; }
if(y==k)
{ z=0;
for(i=1;i<=k+1; i++)
z=z*10+i;
}
else z=(x%p)*10+y;
g<<z<<endl;
//cerinta c)
if(a<b) g<<b-a;
else g<<0;
f.close();
g.close();
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa
.
Rezolvarea problemei #1083 Sir5
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1083 Sir5 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!