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

Se dă un şir x format din n numere naturale nenule. Pentru fiecare element xi din şir să se verifice dacă există un număr k astfel încât elementul xi să fie egal cu suma primelor k elemente din şir.

Răspunsuri la întrebare

Răspuns de radutanasa86
2
#include <bits/stdc++.h>#define nmax 1001using namespace std;int a[nmax],n,b[nmax];bool Caut_Bin(int x){    int st=1,dr=n,m;    while(st<=dr)    {        m=(st+dr)/2;        if(a[m]==x)            return true;        if(a[m]<x)            st=m+1;        else dr=m-1;    }    return false;}int main(){    int i;    cin>>n;    for(i=1; i<=n; i++)    {        cin>>a[i];        b[i]=a[i];    }    for(i=1; i<=n; i++)        a[i]=a[i-1]+a[i];    for(i=1; i<=n; i++)    {        if(Caut_Bin(b[i]))            cout<<"DA\n";        else cout<<"NU\n";    }    return 0;}
Alte întrebări interesante