Най-дълга и най-„тежка“ поредица от числа *

Да се въведат в целочислен масив n на брой случайни положителни числа и да се изведе кое число има най-много повтарящи се поредни стойности, колко точно са на брой те и от кой елемент започват повторенията.

По желание: да се отпечата също така и данните и за поредицата еднакви числа, която е с най-голяма тежест (т.е. сумата от числата да е най-голяма).

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

2 Responses to Най-дълга и най-„тежка“ поредица от числа *

  1. maleboldjia каза:

    Разгеле :D

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        cout<<"Kolko chisla shte se vuvejdat: ";
        int n;
        cin>>n;
        int a[n];
        
        cout<<"Vuvejdaite samo polojitelni chisla: "<<endl;
        int i;
        for(int i=0; i<n; i++) {
            cout<<"a["<<i<<"]= ";
            cin>>a[i];
            while (a[i]<=0) {
               cout<<"   Dopuskat se samo polojitelni chisla. Opitai pak.\n"<<endl;
               cout<<"a["<<i<<"]= ";
               cin>>a[i];
            }
            
        }
        cout<<endl;
        int br=0, max=0, chislo=0, element=0;
        for(i=0; i<n-1; i++){
            if(a[i]==a[i+1])
                br++;
            else if(br>max){
               element=i-br;
               chislo=a[i];
               max=br+1;
               br=0;
                }
            else if(br<=max)
               br=0;
        }
        cout<<"Nai-chesto sreshtanoto chislo e "
            <<chislo<<", zapochva ot ["<<element<<"]"<<" element "
            <<"i se povtarya "<<max<<" puti.\n"<<endl;
    
    	system("pause");
    	return 0;
    }
    
    • Данаил каза:

      Браво! Супер е станала. Може да се оптимизира обаче още малко: на ред 15 нямаш нужда от int – така декларираш нова локална променлива за цикъла; br може да започва от 1; може да минеш без ред 36 и 37 ако br=0 излезе извън последния if.

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