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

контролная - C++

Восстановить пароль Регистрация
 
Вяленыетапки
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 7
20.06.2012, 13:52     контролная #1
4.Из входного текстового файла INPUT.TXT считать вещественные числа типа double и вывести в выходной текстовый файл OUTPUT.TXT те,которые больше 1 и количество нат. делителей у их целой части не больше 3.Количество чисел в выходном файле неизвестно.Определение того,сколько цифр 3 присутствует в записи целого числа,оформить в виде функции(функция должна быть универсальной,тоесть дожна правильно определять количество натуральных делителей числа,в функцию передается параметр-натур. число,функция возвращает значение-количество натуральных делителей.)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
20.06.2012, 17:19     контролная #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
#include <stdio.h>
#include <conio.h>
#include <fstream>
 
using namespace std;
 
int divs(int value);
 
int main()
{
    const char* filename[2] = { "d:\\input.txt", "d:\\output.txt" };
    ifstream ifs(filename[0],ifstream::in);
    ofstream ofs(filename[1],ofstream::out);
 
    double d = 0.00;
    while (ifs.peek() >= 0 && ifs>>d)
    {
        if (divs(int(d)) <= 3 && d > 1.0)
            ofs << d << " ";
    }
 
    ifs.close(); 
    ofs.close();
 
    _getch();
 
    return 0;
}
 
int divs(int value)
{
    int count = 0;
    for (int div = 1; div <= value; div++)
        if ((value % div) == 0) count++;
    return count;
}
input.txt:
5.25 3.75 1.05 29.63 6.14
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
20.06.2012, 17:26     контролная #3
Цитата Сообщение от zitxbit Посмотреть сообщение
int divs(int value)
{
* * int count = 0;
* * for (int div = 1; div <= value; div++)
* * * * if ((value % div) == 0) count++;
* * return count;
}
о ужас, кто же вас научил считать количество делителей за O(n), я неразу такого невидел, вообще правилнее делать за O(sqrt(n))
Yandex
Объявления
20.06.2012, 17:26     контролная
Ответ Создать тему
Опции темы

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