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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
#1

Плавающие числа - C++

07.04.2009, 17:14. Просмотров 1451. Ответов 4
Метки нет (Все метки)

(Время: 1 сек. Память: 16 Мб )
Дано N целых чисел. Каждое из них можно один раз изменить не более чем на целую величину L как в сторону увеличения, так и в сторону уменьшения или оставить без изменения. Если после такой операции некоторые из чисел оказываются равными, то они засчитываются за одно. С данными числами произвели указанную операцию таким образом, что осталось минимально возможное количество чисел. Требуется написать программу для определения этого количества.
Входные данные

Входной файл INPUT.TXT содержит в первой строке натуральные числа L и N (N<=100, L<=3200), во второй строке N чисел (в диапазоне от -32000 до 32000), записанных через пробел.
Выходные данные

В выходной файл OUTPUT.TXT выведите единственное число – ответ на задачу.
Примеры
INPUT.TXT OUTPUT.TXT
10 3
11 21 27 1

5 3
6 10 27 2

Добавлено через 21 минуту 4 секунды
Ну что ни у кого идей нет???
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2009, 17:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Плавающие числа (C++):

Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми - C++
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми. ...

Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел? - C++
Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел?

Ввести в программу строку (числа, латиница), считать только числа, записать числа в массив - C++
Нужна помощь! Срочно! Нужно ввести в программу строку (числа, латиница), считать только числа, записать числа в массив. Помогите,...

Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми - C++
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми. ...

Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ - C++
Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ Добавлено через...

Дан файл F, компонентами которого являются целые числа. Получить в файле G все нечетные числа, входящие в файл F. Числа в файле G должны следовать - C++
Помогите доздать с++) вот задание: Дан файл F, компонентами которого являются целые числа. Получить в файле G все нечетные числа, входящие ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
07.04.2009, 17:32 #2
Сортируй массив,а потом каждый элемент проверяй со следующим,если они равны или отличаются на величину L или 2*L откидываем эти элементы.
0
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
07.04.2009, 21:16  [ТС] #3
Помогите с решением плиииз...

Добавлено через 3 минуты 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
#include <stdio.h>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
      freopen("input.txt", "r", stdin);
      freopen("output.txt", "w", stdout);
        int *a,i=0,n,v=1,l;
        cin>>l>>n;
        a=new int [n];
        for (i=0; i<n; i++){
            cin>>a[i];
            }
        sort(a,a+n);
        v=0;
        for(i=0; i<n-1; i++)
        {
                 if ((a[i]+l==a[i+1])||(a[i]==a[i+1])){
                                     v+=2;
                                     }
                /* else if (a[i]+l!=a[i+1]&&i==n-(n-1)){
                      v+=2;
                      }*/
                              }
        if (v==0){
                  cout<<n-1;
                  return 0;
                  }
        cout<<n-v;
        return 0;
}
Добавлено через 4 минуты 17 секунд
Humanitis, HEEEELLLP, Humanitis, please...

Добавлено через 31 минуту 30 секунд
ПОМОГИТЕ!!!!
0
aNdRyXa
14 / 14 / 0
Регистрация: 28.03.2009
Сообщений: 46
07.04.2009, 22:00 #4
Во-первых, вначале переменную v надо обнулить, т.к. при отсутствии равных, после выполнения оперции, чисел у тебя в ответе будет число на 1 меньше начального количества.
Во-вторых, в цикле во время выполнения условия
C++
1
2
3
if ((a[i]+l==a[i+1])||(a[i]==a[i+1])){
                                     v+=2;
                                     }
ты увеличиваешь количесто одинвковых чисел на 2. Ответ будет неверным если у тебя будет 3 равных числа: программа запишет, что таких числа 4.
В-третьих, ты должен прибавлять 1 каждый раз после того, как отнимаешь все количество(а не только пару) одинаковых чисел.
Вроде бы все.
0
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
07.04.2009, 22:01  [ТС] #5
Цитата Сообщение от aNdRyXa Посмотреть сообщение
Во-первых, вначале переменную v надо обнулить, т.к. при отсутствии равных, после выполнения оперции, чисел у тебя в ответе будет число на 1 меньше начального количества.
Во-вторых, в цикле во время выполнения условия
C++
1
2
3
if ((a[i]+l==a[i+1])||(a[i]==a[i+1])){
                                     v+=2;
                                     }
ты увеличиваешь количесто одинвковых чисел на 2. Ответ будет неверным если у тебя будет 3 равных числа: программа запишет, что таких числа 4.
В-третьих, ты должен прибавлять 1 каждый раз после того, как отнимаешь все количество(а не только пару) одинаковых чисел.
Вроде бы все.
Не понял.. .Если честно, сможешь исправить, ну если те не трудно???
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2009, 22:01
Привет! Вот еще темы с ответами:

плавающие ссылки - C# ASP.NET
Как сделать чтобы в div&quot;е были ссылки на что-то и чтобы эти ссылки поднимались вверх. И так по кругу. Был внятен или нет?? Спасибо.

Плавающие блоки - jQuery
Подскажите пожалуйста, нужно реализовать плавающие сайдабры на странице. Использую библиотеку http://stickyjs.com/ . Но получается не очень...

Плавающие div'ы - HTML, CSS
&lt;div class=&quot;iconleft&quot;&gt; &lt;img src=&quot;layout/images/icon1.jpg&quot; title=&quot;1&quot; /&gt; &lt;/div&gt; &lt;div class=&quot;iconright&quot;&gt; &lt;img...

волны плавающие - Драйверы для видеокарт
мой компьютер не работает нормально в приложениях ,типа ворд ,читалка для книг и когда передвигаю окно происходят волнообразные движения...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.04.2009, 22:01
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru