Cod sursa(job #1828937)

Utilizator matzul98Socaciu Mihai matzul98 Data 14 decembrie 2016 08:41:02
Problema Pascal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.95 kb
#include <iostream> //Care numere se divid cu D de pe randul R
#include <fstream>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
/*
int R, D;
int k,t,n,nn,kk;
void Citire()
{
    f>>R>>D;
}

void Afisare(int a[][100], int n)
{
    //Afiseaza matricea a[][] cu n elemente
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
}

void TriunghiPascal(int a[][100], int &n)
{
    //Construieste si afiseaza triunghiul lui Pascal cu n randuri

    //cin>>n;
    n = R;
    //Construim
    for(int i = 0; i < n; i++)
        for(int j = 0; j <= i; j++)
            if(j==0)
                a[i][j]=1;
            else a[i][j]=a[i-1][j]+a[i-1][j-1];

    //Afisam
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < i+1; j++)
        {
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
}

void RandDivizibil(int a[][100], int n, int R, int D)
{
    //Cate elemente de pe randul R sunt divizibile cu D
    int sum = 0;
    R -= 1; //Triunghi indexat de la 0
    for(int j = 0; j <= R/2; j++)
    {
        if(a[R][j]%D==0) sum += 1;
    }
    sum *= 2;

    cout<<"Cate numere: "<<sum;
}
*/

int a[1000]={};
int b[1000]={};
int n = 1;//Nr de elementele ale lui a si b
int D;//Cu cine tre sa se divida numerele

void Afisare()
{
    int sum = 0;
    for(int i = 0; i < n; i++)
    {
        //cout<<b[i]<<" ";
        if(b[i]%D==0)sum++;
    }
    g<<sum;
}

void Construire(int fin, int cur)
{
    //Generam linia n a Triunghiului
    if(cur>=fin) return;

    for(int i = 0; i < n + 1; i++)
    {
        b[i] = a[i] + a[i-1];
    }

    for(int i = 0; i < n + 1; i++)
    {
        a[i] = b[i];
    }
    n++;
    Construire(fin, cur + 1);
}

int main()
{
    int linie;
    a[0] = 1;
    f>>linie>>D;

    Construire(linie, 0);
    Afisare();
}