Аритметична прогресия

Да се състави програма, чрез която се въвеждат две естествени числа N и M. N е стойност на първият член на аритметична прогресия, а M е разлика между два члена на същата прогресия. Програмата да изчисли и запише в опашка всички членове на прогресията, които са по-малки от 100. Да се изведат елементите на опашката, като първия й член е и първи член на прогресията.

Пример: N=9, M=10 Изход: 9; 19; 29; 39; 49; 59; 69; 79; 89; 99;

По желание: ** Да се реши същата задача, при условие че N e последният член на опашката, а не първия. Например при N=99, M=10 Изход: 9; 19; 29; 39; 49; 59; 69; 79; 89; 99;

Публикувано в 12а с етикети . Постоянна връзка.

4 Responses to Аритметична прогресия

  1. Gadget каза:
     
    // ?????????? ???? ???????? ? ????????
    const int K=100;
      
    class Queue
     {
       private:
         // ???????? ??? ????? ?? ????????
         int head;
         // ???????? ??? ???? ?? ????????
         int tail;
         // ????? ?? ?????????? ?? ?????????? ?? ????????
         int s[K];
         // ?????????????? ?? ????????
         void init();
       public:
         Queue();
         // ???????? ???? ???????? ? ??????
         bool isEmpty();
         // ???????? ???? ???????? ? ?????
         bool isFull();
         // ????? ?? ???????? ? ????????
         bool push(int X);
         // ????????? ?? ???????? ?? ????????
         bool pop(int &X);
    };
      
    Queue::Queue()
    {
      init();
    }
      
    // ?????????????? ?? ????????
    void Queue::init()
    {
      head=0;
      tail=0;
      for(int i=0;i<=K;i++) s[i]=0;
    }
       
    // ???????? ???? ???????? ? ??????
    bool Queue::isEmpty() {
      return head==tail;
    }
       
    // ???????? ???? ???????? ? ?????
    bool Queue ::isFull() {
      return ((tail+1)%K)==head;
    }
       
    // ????? ?? ???????? ? ????????
    bool Queue::push(int X)
    {
      bool ok = !isFull();
      if (ok){
        s[tail] = X;
        tail++;
        tail%=K;
      }
      return ok;
    }
       
    // ????????? ?? ???????? ?? ????????
    bool Queue::pop(int &X)
    {
      bool ok = !isEmpty();
      if (ok) {
        X = s[head];
        head++;
        head%=K;
      }
      return ok;
    }
       
    int main ( )
    {
      int N, M, br=0;
      Queue progresia;
      // ????????? ???????
      cout<<"Vavedete purvi chlen:";
      cin>>N;
      cout<<"Vavedete razlika: ";
      cin>>M;
      for(int i=0;(N+M)<=(100+M);i++) {
        progresia.push(N);    
        N=N+M;
        br++;
      }
      int y;
      cout<<"Progresiata e: ";
      for(int i=br;i>0;i--) {
        progresia.pop(y);
        cout<<y<<", ";    
        
      }
       cout<<endl;
      system("pause");
       
    return 0;
    }
     
  2. marant каза:
    #include <iostream>
    #include <iomanip>
    #include <windows.h>
       
    using namespace std;
       
    // максимален брой елементи в опашката
    const int N=50;
      
    class Queue
     {
       private:
         // указател към върха на опашката
         int head;
         // указател към края на опашката
         int tail;
         // масив за съхранение на елементите на опашката
         int s[N];
         // инициализиране на опашката
         void init();
       public:
         Queue();
         // проверка дали опашката е празна
         bool isEmpty();
         // проверка дали опашката е пълна
         bool isFull();
         // запис на стойност в опашката
         bool push(int X);
         // извличане на стойност от опашката
         bool pop(int &X);
         // печат на опашката
         void print();
    };
      
    Queue::Queue()
    {
      init();
    }
      
    // инициализиране на опашката
    void Queue::init()
    {
      head=0;
      tail=0;
      for(int i=0;i<=N;i++) s[i]=0;
    }
       
    // проверка дали опашката е празна
    bool Queue::isEmpty() {
      return head==tail;
    }
       
    // проверка дали опашката е пълна
    bool Queue ::isFull() {
      return ((tail+1)%N)==head;
    }
       
    // запис на стойност в опашката
    bool Queue::push(int X)
    {
      bool ok = !isFull();
      if (ok){
        s[tail] = X;
        tail++;
        tail%=N;
      }
      return ok;
    }
       
    // извличане на стойност от опашката
    bool Queue::pop(int &X)
    {
      bool ok = !isEmpty();
      if (ok) {
        X = s[head];
        head++;
        head%=N;
      }
      return ok;
    }
       
    // печат на опашката
    void Queue::print() {
      cout<<endl<<"head : "<<head<<" tail: "<<tail<<"\nqueue: | ";
      if(!isEmpty())
        if (head<=tail)
          for(int i=head;i<tail;i++) cout<<setw(3)<<s[i]<<" | ";
        else {
          for(int i=head;i<N;i++) cout<<setw(3)<<s[i]<<" | ";
          for(int i=0;i<tail;i++) cout<<setw(3)<<s[i]<<" | ";
        }
      cout<<endl<<"array: | ";
      for(int i=0;i<N;i++) cout<<setw(3)<<s[i]<<" | ";
      cout<<endl<<"index: | ";
      for(int i=0;i<N;i++) cout<<setw(3)<<i<<" | ";
      cout<<endl<<endl;
    }
       
    int main ( )
    {
      int m,n;
      cout<<"Vuvedete Purviq 4len na progresiqta i razlikata m/y 4islata: ";
      cin>>n>>m;   
      Queue chisla;
      for(;n<100;n=n+m) {
        chisla.push(n);
      }
      //chisla.print();
      int x;
      while(!chisla.isEmpty()) {
        chisla.pop(x);
        cout<<x<<" ";  
    
        }
    
      // отпечатваме резултата
    
      system("pause");
       
    return 0;
    }
    
  3. lochka каза:
     int main ( )
    {
      int N, M, br=0; // деклариране на променлива N, M, br=0
      Queue progresia; // деклариране на променлива от тип опашка
      cout&lt;&gt;N; // въвеждане от клавиатурата N
      cout&lt;&gt;M; // въвеждане от клавиатурата M
      for(int i=0;(N+M)&lt;=(100+M);i++) { // цикъл  for
        progresia.push(N);  // записване на N в опашката
        N=N+M; // N присвоява стойноста на N+M
        br++; // увеличава се с 1
      }
      int y; // деклариране на променлива y
      cout&lt;0;i--) { // цикъл  for
        progresia.pop(y); // извличане на стойноста от опашката 
        cout&lt;&lt;y&lt;&lt;&quot;, &quot;; //   извеждане на екрана y
         
      }
       cout&lt;&lt;endl; //  извеждане на екрана нов ред
      system(&quot;pause&quot;); // край на програмата 
        
    return 0;
    } 

Вашият коментар