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

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

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

Несоставляемое число - C++

06.04.2009, 20:30. Просмотров 1905. Ответов 18
Метки нет (Все метки)

Подскажите решение плииз....
Дано N натуральных чисел. Требуется найти минимальное натуральное число, не представимое суммой никаких из этих чисел, если в эту сумму каждое исходное число может входить не более одного раза.

Входные данные
Входной файл INPUT.TXT в первой строке содержит натуральное число N, не превосходящее 104, далее следуют N строк, в каждой из которых записано по одному натуральному числу, каждое из которых не превосходит 109.

Выходные данные
В выходной файл OUTPUT.TXT выведите ответ на задачу.

Примеры
№ INPUT.TXT OUTPUT.TXT
1 4
1
1
1
5 4

2 4
1
2
4
8 16

Добавлено через 2 часа 46 минут 10 секунд
Плиииз помогите мне... Мне к экзамену на этой неделе нужно....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2009, 20:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Несоставляемое число (C++):

Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д. - C++
Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д. ...

Дано 2-ух-значное число. Сделать так, чтоб программа преобразовала это число в новое число кол-во десятков - C++
Тоесть, для примера, мы вводим число 23, а программа выводит нам 32 (числа наоборот).

Некоторое число оканчивается на 2. Если же эту его последнюю цифру переставить на первое место, то число удвоится. Найти это число - C++
Некоторое число оканчивается на 2. Если же эту его последнюю цифру переставить на первое место, то число удвоится. Найти это число.

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ - C++
Вобщем,если не сложно,именно саму функцию помочь написать,ибо я просто не могу понять:) Добавлено через 22 минуты вот так...

Дано действитёльное число х. Получить целую часть *) числа х; затем — число х, округленное до ближайшего целого; затем — число х без дробных цифр. - C++
Здравствуйте помогите написать программу. Дано действитёльное число х. Получить целую часть *) числа х; затем — число х, округленное до...

Не получается исправить ошибку (Вводится диапазон, где 1-ое число-начало диапазона, 2-ое число приращени, 3-е число конец диапазона) - C++
Здравствуйте. Не могу исправить ошибку. Задание: Вводится диапазон, (например 5,1,10) где 1-ое число-начало диапазона, 2-ое число...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
06.04.2009, 21:21 #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
#include <iostream>
#include <vector>
#include <algorithm>
#include <time.h>
 
int main()
{
    std::vector<int> vec(104);
    std::vector<int>::iterator veciter;
 
    srand( (unsigned)time( NULL ) );
 
    for(veciter=vec.begin();veciter!=vec.end();veciter++)
        std::cout<<(*veciter=rand()%109)<<' ';
    sort(vec.begin(),vec.end());
 
    int value=1;
    for(veciter=vec.begin();veciter!=vec.end();veciter++)
    {
        if(value>=*veciter)
            value+=*veciter;
        else
            break;
    }
 
    std::cout<<"\nResult: "<<value<<'\n';
    return 0;
}
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
06.04.2009, 21:36  [ТС] #3
СПС.... Уже сделал!!!!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
        int a[104],i=0,n,v=1;
        scanf ("%i",&n);
        for (i=0; i<n; i++){
            scanf ("%i",&a[i]);
            }
        sort(a,a+n-1);
        for(i=0; i<n; i++)
        {
                if(v>=a[i])
                        v+=a[i];
                else
                        break;
        }
        printf ("%i",v);
        return 0;
}
Добавлено через 3 минуты 39 секунд
Ну что же это такое ошибку выдает, на тестах....
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
06.04.2009, 21:48 #4
Какую именно?
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
06.04.2009, 21:59  [ТС] #5
Цитата Сообщение от Humanitis Посмотреть сообщение
Какую именно?
Я тут твою переделал на си отправил учителю, говорит алгоритм не на 100%, проходит примерно 30-35% тестов...Вот так вот...
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
06.04.2009, 22:10 #6
Наверное wrong answer пишет
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
06.04.2009, 22:11  [ТС] #7
Да
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
06.04.2009, 22:13 #8
Ну давай ссылку,на какой spoj отправляешь
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
06.04.2009, 22:14  [ТС] #9
Цитата Сообщение от Humanitis Посмотреть сообщение
Ну давай ссылку,на какой spoj отправляешь
не понял...
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
06.04.2009, 22:17 #10
Ты задание тестишь на каком-то сайте?
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
06.04.2009, 22:18  [ТС] #11
Цитата Сообщение от Humanitis Посмотреть сообщение
Ты задание тестишь на каком-то сайте?
http://********/index.asp?main=task&id_task=427
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
06.04.2009, 22:23 #12
Новенький, так ты задание правильно переписывай,там не 104 и 109,а 10**4 и 10**9.
Измени в задании тип int на unsigned long int и размер массива с 104 до 10000
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
06.04.2009, 22:38  [ТС] #13
Цитата Сообщение от Humanitis Посмотреть сообщение
Новенький, так ты задание правильно переписывай,там не 104 и 109,а 10**4 и 10**9.
Измени в задании тип int на unsigned long int и размер массива с 104 до 10000
без разницы опять WA......

Добавлено через 12 минут 5 секунд
Humanitis, ты можешь мне свою почту скинуть... ну если те сложно... вдруг если у меня какие нибудь вопросы будут у тебя спрошу....
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
06.04.2009, 22:41 #14
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 <iostream>
#include <vector>
#include <algorithm>
#include <time.h>
 
 
int main()
{
    std::vector<unsigned long long int>::iterator veciter;
 
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    unsigned int size;
    std::cin>>size;
    std::vector<unsigned long long int> vec(size);
 
    for(veciter=vec.begin();veciter!=vec.end();veciter++)
        std::cin>>*veciter;
    sort(vec.begin(),vec.end());
 
    unsigned long long int value=1;
    for(veciter=vec.begin();veciter!=vec.end();veciter++)
    {
        if(value>=*veciter)
            value+=*veciter;
        else
            break;
    }
 
    std::cout<<value;
    return 0;
}
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
07.04.2009, 16:30  [ТС] #15
И все таки не проходит....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2009, 16:30
Привет! Вот еще темы с ответами:

Введенное число делить на второе введенное число пока первое число не станет равным нулю - C++
Введенное число делить на второе введенное число пока первое число не станет равным int number=0; int secondNum=0; int...

Ввести число n, разбить число на цифры, и найти сумму этих цифр - C++
Здравствуйте.Очень нужно сделать задание, кто может? Заранее спасибо!!! Ввести число n, разбить число на цифры, и найти сумму этих...

Дано натуральное четырехзначное число n. Определить, является ли это число перевертышем - C++
Дано натуральное четырехзначное число n. Определить, является ли это число перевертышем. Например, числа 2222, 6116, 0440 и т.д.

Функция определяющая что общее число книг есть шестизначное число - C++
В массиве хранится информация о численности книг в каждом из 35 разделов библиотеки. Выяснить,верно ли, что общее число книг есть...


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

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

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