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

Problema HappyNewYear #1420 (PBINFO)

Se dau n numere naturale divizibile cu 9. Aceste numere se scriu unul lângă altul astfel încât să formeze un singur număr. Se calculează suma cifrelor numărului obţinut, apoi suma cifrelor sumei anterioare şi se continuă procedeul până se obţine ca rezultat un număr format dintr-o singură cifră. Cifra obţinută se înmulţeşte cu 7 şi se obţine un număr m. Se cere aflarea celui de-al m lea număr triunghiular.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire
Programul va afișa pe ecran numărul A, reprezentând al m-lea număr triunghiular.

Restricții și precizări
1 ≤ n ≤ 1.000.000
cele n numere citite vor fi mai mici decât 2.000.000.000
un număr natural nenul se numeşte triunghiular dacă este egal cu numărul elementelor dintr-o matrice pătratică, situate deasupra diagonalei principale.


DavidSima: deci ca sa inteleg notiunea de nr triunghiular, primul nr triughiular e 3, al doilea e 6, al treilea e 10, nu? nr elementelor de deasupra diagonalei principale
DavidSima: am gasit formula :p

Răspunsuri la întrebare

Răspuns de DavidSima
1
#include <iostream>
using namespace std;
unsigned int n, i, a, nr, s, A, m, c, k;
int main()
{
    cout<<"n = ";
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cout<<"nr. "<<i<<" = ";
        cin>>nr;
        c=nr;
        k=0;
        while(c)
        {
            k++;
            c/=10;
        }
        a=a*10*k+nr;
    }
    while(a)
        {
            s+=a%10;
            a/=10;
        }
    while(s>9)
    {
        a=s;
        s=0;
        while(a)
        {
            s+=a%10;
            a/=10;
        }
    }
    m=s*7;
    A=m*(m+1)/2;
    cout<<"Cel de al " << m <<"-lea nr. triunghiular este " << A;
}

CRG: a=a*10+nr; nu vad unde zice ca nr are o singura cifra.
DavidSima: mda.. :)) mersi :p am editat. exista un mod mai usor de a construit numarul ala?
CRG: Nu e nevoie sa-l construiesti. In orice caz, nu iei 100p daca o faci babeste. Am incercat si eu pana sa ma prind de faza cu cout<<2016;
CRG: Si chiar daca incerci sa-l construiesti, is curios cum retii 23 de numere lipite (de exemplu), intr-o singura variabila.
Alte întrebări interesante