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

Se consideră şirul 1, 2,1, 3,2,1, 4,3,2,1, ... , în care prima grupă este formată din numărul 1 , a doua grupă este formată din numerele 2,1 , ..., iar a k - a grupă este formată din numerele k, k - 1 , ..., 2, 1 . Pentru un număr natural dat n , să se determin e al n - lea termen din şir. Date de intrare: Programul citeşte de la tastatură numărul n. Date de ieşire: Programul va afişa pe ecran numărul x , reprezentând al n - lea termen din şir. Exemplu: pentru n=14, se va afișa 2.


lozanalex: Pentru ce limbaj de programare, Pascal sau C++, sau ...?

Răspunsuri la întrebare

Răspuns de lozanalex
0
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int n,k=1,x;
    vector <int> a;
    cin >> n;
    while (a.size()<n)
    {
        x=k;
        while (x)
        {
            a.push_back(x);
            x--;
        }
        k++;
    }
    cout << a[n-1];
    return 0;
}

var n,k,x:integer;
a:array [0..100000] of integer;

begin
  read(n); k:=1;
  while (a[0]<n) do
  begin
    x:=k; k:=k+1;
    while (x>0) do
    begin
      a[0]:=a[0]+1;
      a[a[0]]:=x;
      x:=x-1;
    end;
  end;
  write(a[n]);
end.
Alte întrebări interesante