Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 22.05.2017
Сообщений: 29

Разбить строку, массив на группы

06.12.2017, 20:24. Показов 1180. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
маэмо строку (или массив), который складаэться с 0 и 1. Необходимо разбить на части так, чтобы образовалось две группы с одинаковым количеством нулей и единиц.Само собой количество единиц и нулей парная, чтобы распределить их на две группы. Определить сколько нужно сделать разделов и между какими элементами. К примеру 0 1 0 0 1 1 0 1
два разбиение, между элементами 1 2 та 5 6
0 1001 101
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace olz3
{
    class Program
    {
        static void Main(string[] args)
        {
            int counte = 0;
            int counter = 0;
            int c = 0;
            int c1 = 0;
            int a = 0;
            int a1 = 0;
            int i =0;
         
            int i1 = 0;
            Console.Write("количество звеньев= ");
            int n = int.Parse(Console.ReadLine());
            int k = n*4;
            int[] b = new int[k];
            for (i = 0; i < k; i++)
            {
                b[i] = int.Parse(Console.ReadLine());/ввод чисел 0, 1
               
            }
 
           for ( i = 0; i < k; i++)
            {
                if (b[i] == 0)
                {
                    counte += 1; //количество 0
                }
                if (b[i] == 1)
                {
                    counter += 1; //количество 1
                }
 
            }
           for (i = 0; i < k / 2; i++)
           {
               c = c + b[i];
 
           }
 
           for (i = k / 2; i < k; i++)
           {
               c1 = c1 + b[i];
 
           }
 
           
           
            if (counte != counter)
            { Console.Write("error= "); }
 
            else if (c == c1)//если половины одинаковые разрез один посередине
            {
                Console.WriteLine();
                Console.Write("количество разрезов= ");
                Console.Write(1 + " ");
                Console.WriteLine();
                Console.Write("Между ");
                Console.Write((k / 2 )+i1 +" ");
                Console.Write((k / 2) + 1+i1 + " ");
            }
 
    else if (b[0] == 0)
           {
               i1 = 1;
               for (i = 1; i <( k / 2)+1; i++)
               { a = a + b[i]; }
               for (i = (k / 2)+1; i < k ; i++)
               { a1 = a1 + b[i]; }
               
               if (a == a1)
               {
                   Console.WriteLine();
                   Console.Write("количество разрезов= ");
                   Console.Write(1 + i1 + " ");
                   Console.WriteLine();
                   Console.Write("Между");
                   Console.Write((k / 2) + " ");
                   Console.Write((k / 2) + i1 + " ");
                   Console.WriteLine();
               }
                   
                  
              // else if (b[k-1] == 0)
               /*{
                   a = 0;
                   a1 = 0;
                   for (i = 1; i < (k / 2) ; i++)
                   { a = a + b[i]; }
                   for (i = (k / 2) + 1 + 1; i < k-1; i++)
                   { a1 = a1 + b[i]; }
                   if (a == a1)
                   {
                       Console.WriteLine();
                       Console.Write("количество разрезов= ");
                       Console.Write(1 + i1 + " ");
                       Console.WriteLine();
                       Console.Write("Между ");
                       Console.Write((k / 2) + i1 + " ");
                       Console.Write((k / 2) + 1 + i1 + " ");
                       Console.WriteLine();
                   }*/
                  
               }
               Console.Write(i1 + " ");
               Console.Write(1 + i1 + " ");
           
        
            Console.ReadKey();
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.12.2017, 20:24
Ответы с готовыми решениями:

Разбить строку на массив строк
Как реализовать задачу: дана строка, необходимо ее разбить на слова по разделителю

Разбить строку на массив по правилу
Надобно разбивать входящие строки на массивы строк, по пробелам. При этом, если в строке после пробела открываются кавычки, то элемент...

Разбить строку на массив слов
Такой вопрос: У меня есть txt файл с словами. Каждое слово расположено на отдельной строке. Я перевел все содержимое файла в string и...

2
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
06.12.2017, 20:46
Цитата Сообщение от Tnkf Посмотреть сообщение
К примеру 0 1 0 0 1 1 0 1
два разбиение, между элементами 1 2 та 5 6
спорно. А почему не 01 0011 01?
0
0 / 0 / 0
Регистрация: 22.05.2017
Сообщений: 29
06.12.2017, 21:15  [ТС]
делим как можно ближе к началу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.12.2017, 21:15
Помогаю со студенческими работами здесь

Разбить строку(с числами) и записать в массив?
Нужно разбить строку(с числами) и записать в массив, не понимаю как сделать.

Разбить строку на группы цифр и вывести их в формате HEX
Всем привет Есть строка AnsiString temp = &quot;197&quot; а хочется в unsigned char result = 13 07; это в HEX У меня это никак не получается(...

Произвольную строку разбить на группы по 5 следующих один за другим символов в каждой
Задача: Произвольную строку разбить на группы по 5 следующих один за другим символов в каждой, не считаю пробелов. В качестве разделителя...

Разбить массив строк на две равные группы так, чтобы однофамильцы оказались в разных группах
Не могу никак решить задачу. Вот условие: запросить у пользователя количество студентов, ввести их фамилии в произвольном порядке и разбить...

Разбить строку на массив
Здравствуйте. Необходимо разбить строку: 1:22;2:10,4:1;10:1; на массив, что бы было индексом первое число, второй value, т.е.: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru