Rezolvare completă PbInfo #1083 Sir5

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.

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 Adresa de email.

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!