Равни стойности (Есенен турнир, Шумен, 2001 година).

Задача, на която попаднах случайно и мисля, че нашия скромен екип има нужните възможности, за да я реши. Ето я и нея:

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

4 5 5 6 6 6 8 0

резултатът трябва да е 3, защото има поредица от 3 последователни равни числа (6,6,6) и това е най-дългата поредица от равни числа.

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

3 Responses to Равни стойности (Есенен турнир, Шумен, 2001 година).

  1. dreanor каза:
    using namespace std;
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int chislo,br=1,max=0,srawnenie=0,poredica=0;
    	cin>>chislo;
    	while(chislo!=0)
    	{
    		
    		srawnenie=chislo;
    		cin>>chislo;
    		if (srawnenie==chislo) br++;
    		else if(br>max)
    		{
    			poredica=srawnenie;
    			max=br;
    			br=1;
    		}
    		else br=1;
    		
    	
    	}
    	cout<<"Nai dulgata poredica e "<<max<<"x"<<poredica<<endl;
    	
    
    	system ("PAUSE");
    	return EXIT_SUCCESS;
    }
    
    • Данаил каза:

      Вярно! Ето и моят вариант с char вместо int (базиран на твоя):

      #include <iostream>
      
      using namespace std;
       
      int main(int argc, char* argv[])
      {
        char chislo,srawnenie='0',poredica='0';
        int br=0,max=0;
        do{
          cin>>chislo;
          if (srawnenie==chislo) // поредицата еднакви цифри продължава
            br++;
          else {  // край на поредицата
            if(br>max) { // проверяваме дали е по-дълга от досегашните
              poredica=srawnenie; // ако да - запомняме новия фаворит
              max=br;
            }
            br=1; // броенето започва отначало, запомняме новото число
            srawnenie=chislo;
          }
        }while(chislo!='0');
        cout<<"Nai dulgata poredica e "<<max<<"x"<<poredica<<endl;
         
        system ("PAUSE");
        return 0;
      }
  2. dreanor каза:
    using namespace std;
     
     
    int main(int argc, char *argv[])
    {
        int chislo,br=1,max=0,srawnenie=0,poredica=0;
        cin>>chislo;
        while(chislo!=0)
        {
             
            srawnenie=chislo;
            cin>>chislo;
            if (srawnenie==chislo) br++;
            else if(br>max)
            {
                poredica=srawnenie;
                max=br;
                br=1;
            }
            else br=1;
             
         
        }
        cout<<"Nai dulgata poredica e "<<max<<"x"<<poredica<<endl;
         
     
        system ("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Кода компилиран с Dev-c++

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