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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
07.04.2009, 17:14     Плавающие числа #1
(Время: 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 секунды
Ну что ни у кого идей нет???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2009, 17:14     Плавающие числа
Посмотрите здесь:

2 Задачи на С++(Вводить и суммировать числа пока пользователь не введет 2 одинаковых числа) C++
C++ Составить функцию которая добавляет в начало числа, увеличивая порядок числа на 1.
По последней цифре числа найти последнюю цифру квадрата этого числа C++
Распечатать все числа от 1 до N, у которых остатки от деления на число Z не превышают числа M. C++
Подсчет числа четных цифр, используемых в написании N-значного числа М (функции) C++
C++ Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел?
C++ Написать функцию, которая принимает 2 числа (n, m) и выводит на экран все числа от n до m
Ввод чисел через пробел до определеного числа,убрать оставшиеся числа C++
Определить цифры целого числа (тип числа - целое без знака) C++
Даны натуральные числа n, k. Проверить, есть ли в записи числа n (в степени k) цифра m C++
C++ Найти числа-близнецы: простые числа разность между которыми равна 2
Распечатать все числа от 1 до N, у которых остатки от деления на число Z не превышают числа M C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Humanitis
 Аватар для Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
07.04.2009, 17:32     Плавающие числа #2
Сортируй массив,а потом каждый элемент проверяй со следующим,если они равны или отличаются на величину L или 2*L откидываем эти элементы.
Новенький
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 секунд
ПОМОГИТЕ!!!!
aNdRyXa
 Аватар для 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 каждый раз после того, как отнимаешь все количество(а не только пару) одинаковых чисел.
Вроде бы все.
Новенький
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 каждый раз после того, как отнимаешь все количество(а не только пару) одинаковых чисел.
Вроде бы все.
Не понял.. .Если честно, сможешь исправить, ну если те не трудно???
Yandex
Объявления
07.04.2009, 22:01     Плавающие числа
Ответ Создать тему
Опции темы

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