Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: С++ сколько неодинаковых пар чисел в строке  (Прочитано 2263 раз)

0 Пользователей и 1 Гость просматривают эту тему.

tutilatitu

  • Гость
Re: С++ сколько неодинаковых пар чисел в строке
« Ответ #15 : 22 Сентября 2011, 15:48:37 »
Вот код на C#
int couple(string s) { // возвращает число неодинаковых пар цифр в строке s
   int count = 0;
   for(ini i = 0; i < s.Length -1; i++)
      if( s[i] != (s[i+1] ) count++;
   return count;
}

// вызов: Console.Write( couple("22334547"); );
« Последнее редактирование: 22 Сентября 2011, 23:32:14 от tutilatitu »

Оффлайн qpalzz

  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: С++ сколько неодинаковых пар чисел в строке
« Ответ #16 : 24 Сентября 2011, 14:55:43 »
Вот мой вариант, только на С:
#include <stdio.h>
#include <string.h>

int main() {
printf("Введите пары чисел: ");
char str[256];
scanf("%s",str);
int len, count = 0;
if ((len = strlen(str)) % 2) {
printf("Количество чисел нечетно\n");
return -1;
}
else {
for (int i = 0; i < len-1; i+=2) {
if (str[i] == str[i+1]) {
count++;
}
}
printf("Количество одинаковых пар: %d\n",count);
return 0;
}
}

tutilatitu

  • Гость
Re: С++ сколько неодинаковых пар чисел в строке
« Ответ #17 : 24 Сентября 2011, 20:20:48 »
Причем здесь нечетное количествo пар?
К примеру имеем для обработки строку "223345477"
Любые две соседние цифры образуют пару.
Для этой строки пару будут: 22 23 33 34 45 54 47 77

Оффлайн ChertopoloX

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Re: С++ сколько неодинаковых пар чисел в строке
« Ответ #18 : 25 Сентября 2011, 02:45:56 »
Цитировать
неодинаковых пар чисел в строке
определил бы сначала что такое "пара" чисел.
сначала преобразуем каждый символ строки в число и загоняем в массив, потом чистая комбинаторика, множество всех подмножеств мощностью 2, т.е. структура с двумя целыми. выбираем все подмножества в дин массив и сравниваем элементы между собой, в случае "эквивалентно" (которое надо или переопределить, или if - ом элементы структуры в элементах массива сравнивать) накручиваем счетчик. внимание, как поставлена задача, так мой ответ верный, а что там "подразумевалось" ... количество всех подмножеств мощностью m множества мощностью n (m <= n) вычисляется по формуле n! / m! * (n - m)!, а дальше выделяешь под массив память и заполняешь массив структурного типа, "парами" чисел. На выбор всех подмножеств в массив используй битовую маску на предмет проверки i- того элемента.
 :coolsmiley:

Оффлайн qpalzz

  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: С++ сколько неодинаковых пар чисел в строке
« Ответ #19 : 25 Сентября 2011, 17:34:19 »
Причем здесь нечетное количествo пар?
printf("Количество чисел нечетно\n");Где здесь написано слово "пар"?
Как раз и идет проверка на то, что у каждой цифры должна быть своя пара

А вообще да, ТС надо писать задачу четче, а то у каждого свое представление о ней.
« Последнее редактирование: 25 Сентября 2011, 17:37:03 от qpalzz »

tutilatitu

  • Гость
Re: С++ сколько неодинаковых пар чисел в строке
« Ответ #20 : 25 Сентября 2011, 18:38:49 »
Цитировать
неодинаковых пар чисел в строке
определил бы сначала что такое "пара" чисел.

А мне это надо? Пусть ТС определяет.  :)

Оффлайн ChertopoloX

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Re: С++ сколько неодинаковых пар чисел в строке
« Ответ #21 : 26 Сентября 2011, 02:45:03 »
tutilatitu, qpalzz дык я именно ему и адресовал топик  8)

Оффлайн Vovaldo

  • Любитель
  • *
  • Сообщений: 82
  • Ху Тин Пуй
    • Просмотр профиля
    • Путин забрал у Медведева инновационный орган
Re: С++ сколько неодинаковых пар чисел в строке
« Ответ #22 : 26 Сентября 2011, 07:47:21 »
Быть может одинаковые числа должны стоять рядом?
Причём здесь вообще "одинаковые", когда в заголовке речь идёт о "НЕодинаковых"?

Оффлайн marfey

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля

nashel  bolee menee podxodiashij kod , vsem spasibo za pomosh ! =)

-------------------------------------------------------------
//   skolko raznix dvuxznacnix cisel v stroke ?
#include <stdio.h>   
#include <conio.h>   
#include <string.h> 
#include <stdlib.h> 

char str1[80];   
char chN[80];     
int Numbers[40];            // spisok dvuxznacnix
int QuantityOfNumbers[99];  // spisok dvuxznacnix
char ch;
int i;
int len;
int count;
int n2;       // obshee kolicestvo
int d2n;      // raznie dvuxznacnie cisla

void main()
{
   printf("Enter numbers separated by space and with space at the end:\n");
   gets( str1);     // scitat stroku
   len = strlen( str1);   // dlina stroki

   //printf( str1);
   //printf( "\n");
   //printf( "len=%d\n", len);

   for ( i=0; i<len; i++)
   {
      ch = str1;
      chN[count] = ch;
      count++;

      // "55 45 45 1 5"  str1
      //  chN: 55 45 45 1 5
      if ( ch == ' ' )
      {
         if ( count == 3 )
         {
            
            Numbers[n2++] = atoi( chN);
         }
         else
         {
            chN[2] = 0;   
         }
         count = 0;    // zapuskaem cislo v masiv
      }
   }
   // Masyv Numbers[] xranit vse cisla
   printf( "2 digit numbers = %d\n", n2);
   printf( "List of all 2 digit numbers: ");
   for ( i=0; i<n2; i++)
   {
      printf( "%d ", Numbers);
   }
   printf( "\n");

   // scitaem raznie cisla
   for ( i=0; i<n2; i++)
   {
      QuantityOfNumbers[ Numbers]++;
   }
   
   printf( "List of all different 2 digit numbers: ");
   for ( i=0; i<99; i++)
   {
      if ( QuantityOfNumbers != 0 )
      {
         
         d2n++;
         printf( "%d ", i);
      }
   }
   printf( "\nTotal number: %d\n", d2n);
   getch();   
}

Оффлайн Кровавый

  • Старожил
  • *
  • Сообщений: 1626
  • Логика творит чудеса!
    • Просмотр профиля

nashel  bolee menee podxodiashij kod , vsem spasibo za pomosh ! =)


Вообще-то, это C, а не C++. Это первое.
Второе - он заточен под Borland для MSDOS. библиотека conio.h не входит в g++.
Железо: AMD FX8350 4.2Ghz + 2x4Gb Kingston HeyperX + Asus M5A97 R2.0 + HDD WD WZ10EZEX 1TB 7200 rpm + SSD 128 GB + Win 10 x64.

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
marfey, это ты почти 2 месяца более-менее подходящий код искал? :o
И что интересно -- нашёл...

Оффлайн marfey

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
marfey, это ты почти 2 месяца более-менее подходящий код искал? :o
И что интересно -- нашёл...
Че ? ну вопервых я непрограмер, и этим незанимаюсь, только если warcraft map editor =) :-\
во вторых чтомне выкинули у меня невышло приспособить... а сессия была на носу, так пардон ...  :P
а  кто ищет тот найдет ..   

 

Страница сгенерирована за 0.044 секунд. Запросов: 25.