Форум программистов, компьютерный форум CyberForum.ru

Задача "Чудесное поле" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить сумму http://www.cyberforum.ru/cpp-beginners/thread985405.html
Дано натуральное число n. Вычислить: \sum_{k=0}^{n} \frac{(-1)^k(k+1)}{k!} Правильно-ли? Кто, что может подсказать? #include <iostream> #include <cmath> using namespace std;
C++ Указатели на vector есть класс в котором методы обрабатывают данные с помощью векторов и возвращают результат в vector, пример: Class A { private: float *memory_buffer_100 = (float*)malloc(размер); //может быть лучше тут разместить вектора и сделать указатели на них? public: vector<float> function() http://www.cyberforum.ru/cpp-beginners/thread985377.html
C++ Работа с конструкторами в С++
Помогите, пожалуйста, в реализации следующей задачи. Необходимо реализовать собственное представление для класса строки. Класс содержит аналоги функций, находящихся в библиотеке string.h. 1. Аналог strlen (реальная длина строки) 2. Аналог strcpy () ob1.sc(ob2) копирование ob2 в ob1 3. Аналог strcmp() <0 ob1<ob2 0 ob1=ob2 >0 ob1>ob2 4. Аналог strcat()
организация программ с использованием функций C++
Заданы стороны двух треугольников ABC и DEF. Переменной V присвоить значение TRUE , если площадь треугольника ABC меньше или равна площади DEF, и значение FALSE - в противном случае. Ввод сторон треугольников вычисление площади треугольника по формуле Герона оформить в виде подпрограммы. Помогите составить программу.
C++ Сформировать массив L из массивов A и B http://www.cyberforum.ru/cpp-beginners/thread985334.html
Задан массив A из N элементов и массив B из M элементов. Сформировать массив L из массивов A и B путем их слияния так, чтобы сначала располагались все элементы массива A, а затем все элементы массива B. Значения N и M ввести с клавиатуры, а массивы A и B сформировать из случайных чисел в диапазоне от -10 до 100.:hysteric:
C++ Два двузначных числа, записанных подряд, образуют четырехзначное число, которое нацело делится на их произведение. Найти все такие числа Товарищи катятки, запоролся на простой задаче: Два двузначных числа, записанных подряд, образуют четырехзначное число, которое нацело делится на их произведение. Найти все такие числа. Беда в том что выдает неверные значения, может кто найдет у меня ошибку в коде или обьяснит такой результат? мой код: #include <iostream> #include <conio.h> using namespace std; подробнее

Показать сообщение отдельно
Сергей2000
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 28
23.10.2013, 11:17  [ТС]     Задача "Чудесное поле"
1 задача
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
#include <stdio.h>
 
 
int main(void) {
  int s[40000]; // создаем массив, подходящий рамкам условия;
  int N,i,j,k,n; //N-количество элементов массива;i,j-счетчики; k-длина сектора, совмещенный с счетчиком в паре // условий;
  freopen("input.txt","r",stdin);  //
  freopen("output.txt","w",stdout);// это не обязательно;
  k=n=0;//инициализируем
  
  scanf("%d",&N); //считываем кол-во элментов;
   for(i=0;i<N;i++) 
    scanf("%d",s+i);//инициализируем массив;
   
      
  for(j=1;j<N-2;j++) {                           //с помощью цикла находим расположение последнего сектора
 /*берем  первый элемент массива и с помощью него находим последний сектор.после этого цикла идет проверка на то что последний элемент полученного сектора конец массива. Если сектор 5 элементов, первые пять будут равняться последним пяти.  При всем этом 0+k не равно j-элементу, чтобы эта проверка не ушла дальше него, ведь в этом нет смысла.*/
        while ((s[0+k]==s[j+k])&&(k!=j)) {   k++;
    }
    if(j==(N-k-1)) {         //если последний элемент сектора равен концу массива
      printf("%d\n",k);    //то все верно, иначе обнуляем k и повторяем все заново
      return 0;
      }
    else k=0;
  }
    
  for(j=1;j<N-2;j++)  // это все если k=0, а значит в массиве один сектор или все элементы равны, а
    if(s[0]==s[j]) //а так как нужно взять наименьший сектор то берем единиццу, в противном случае размер массива минус один.
      n++;
  if(n==(N-3))
    printf("1\n");
  else
    printf("%d\n",(N-1));
  return 0;
}
код работает,но в примере видно что если ввести 1 1 10 5 будет 1 6, но при вводе в input 1 1 10 5, в output 0
 
Текущее время: 08:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru