Форум программистов, компьютерный форум, киберфорум
Наши страницы

Два указателя. Сложно - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ как выйти из циклов http://www.cyberforum.ru/cpp-beginners/thread859628.html
#include "stdafx.h" #include <stdio.h> #include <conio.h> #include <math.h> #include <Windows.h> #include <iostream> void main(void) { SetConsoleCP(1251);
C++ Почему так? Я вот уже довольно много времени читаю книги и разные коды по программированию, но все так и не понял. Почему хорошие программисты используют запись std:: а не просто в начале написать using... http://www.cyberforum.ru/cpp-beginners/thread859622.html
Необходимо написать калькулятор(деление), чтобы при выводе показывало 30 знаков после запятой C++
Необходимо написать калькулятор(деление), чтобы при выводе показывало 30 знаков после запятой. Типо 1/3 = 0,333333333333333333333333333334 P.S. Еще учитель просить использовать массив. Зачем? И...
C++ поиск подстроки в строке
Всем доброго времени суток! Дано: две строки типа string, к примеру str1 = "HeLLo" и str2 = "hell" Вопрос: как найти из str1 подстроку str2 без учёта регистра? заранее спасибо
C++ Поиск и замена слов в файле txt http://www.cyberforum.ru/cpp-beginners/thread859590.html
Как заменить и найти слова в файле txt на С++. То есть есть файл вот такой структуры AAA БББ BBB 111 222 ыыы
C++ Рекурсивная функция Походу что-то с массивами не то, когда ввожу слишком большое число (15+), то выбивает ошибку с кучами\стеками, которую я не понимаю. using namespace std; void rekursija(long long factorials, int... подробнее

Показать сообщение отдельно
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
10.05.2013, 20:15
Дайте, пожалуйста, рабочую ссылку на задачу. Или, если возможно, не могли бы Вы уточнить формулы. Потому что при тех что есть, используя данные из примера, получается последовательность: 4 0 -2 2 -1 0 -2, а это не соответствует ответу. А так вот один из вариантов:
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
#include <iostream>
 
 
int main() {
   const int size = 7;
   int sum[ size ];
   
   int X = 1;
   int Y = -2;
   
   int A = 3;
   int B = 4;
   int C = 5;
   int S = 6;
   
   int index  = 0;
   int length = 0;
   
   int b = S;
   
   sum[ 0 ] = X * b + Y;
   
   for ( int i = 1; i < size; i++ ) {
      b = ( A * b + B ) % C;
      sum[ i ] = X * b + Y + sum[ i - 1 ];
      
      for ( int j = 0; j <= i; j++ )
         if ( sum[ i ] - sum[ j ] >= 0 && i - j >= length ) {
            length = i - j + 1;
            index = j + 1;
         }
   }
   
   std::cout << index << ' ' << length << std::endl;
   
   return 0;
}
Добавлено через 16 минут
Внутренний цикл можно немного оптимизировать, чтобы избежать возможных лишних итераций.
C++
1
2
3
4
5
6
      for ( int j = 0; j <= i && i - j >= length; j++ ) {
         if ( sum[ i ] - sum[ j ] >= 0 ) {
            length = i - j + 1;
            index = j + 1;
         }
      }
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru