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

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

Войти
Регистрация
Восстановить пароль
 
Di3go
Аноним
4 / 4 / 2
Регистрация: 15.12.2013
Сообщений: 148
Завершенные тесты: 2
#1

Как уменьшить количество кода? - C++

30.01.2014, 00:32. Просмотров 311. Ответов 6
Метки нет (Все метки)

Здравствуйте. Имеется костыль код. Этот код делает типа "сколько чисел вместится в одно большое число". Так, как я с С++ недавно, решил попрактиковаться с этим вопросом. Создал функцию. Вроде работает. В том то и дело что "работает". У меня много лишнего кода в функции. Все работает, извините, через задницу.

Извините, объяснить по-другому не могу.

Собственно сам код:

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
37
38
39
// hellon.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int rec(int _nominal, int _max) //_max - то самое большое число, в которое должны вместится _nominal
{
    int counter = 0, su = 0;
    for(int i = 0; i >= 0; i++) 
    {
        su += _nominal;
        if(su >= _max)
        {
            counter++;
            if(su > _max)
            {
                su -= _nominal;
                counter--;
            }
            break;
        }
        else
        {
            counter++;
        }
        
    }
    return counter;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
     
    cout << rec(4, 100);
    system("pause");
    return 0; 
}
Нужно сделать код более читабельным и простым. Заранее спасибо.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 00:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как уменьшить количество кода? (C++):

Уменьшить программу/снизить количество операторов - C++
В этой программе описан динамический массив, который сортирует числа по возрастанию. Можно ли как-нибудь уменьшить программу? #include...

[Сортировка слиянием] Уменьшить количество требуемой памяти для сортировки - C++
Добрый, на момент написания, день всем. Изучаю алгоритмы данных, дошёл до сортировки слиянием (Merge Sort). Прочитал, что для...

Оптимизировать алгоритм, чтобы уменьшить количество операций для проверок деления - C++
Всего один вопрос. Как оптимизировать алгоритм, чтобы уменьшить количество операций для проверок деления? #include &lt;iostream&gt; #include...

Уменьшить число в 2 раза (деление нацело). Проверить, изменилось ли после уменьшения количество разрядов - C++
Цель: Использование функций в программе Дано натуральное число N. Уменьшить число в 2 раза (деление нацело). Проверить, изменилось ли...

Дан массив.Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо - C++
Помогите доделать задачу на С++ 1.Дан массив A. Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить...

Как уменьшить чувствительность мыши? - C++
Какой WIN API функцией можно на некоторое время уменьшить чувствительность мыши, не только в окне программы но и во всей винде?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
30.01.2014, 01:14 #2
Di3go,
C++
1
2
3
4
int rec(int nominal, int max)
{
    return (max >= nominal) ? 1 + rec(nominal, max-nominal) : 0; 
}
0
school_bot
14 / 12 / 3
Регистрация: 23.12.2013
Сообщений: 84
30.01.2014, 01:16 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Di3go Посмотреть сообщение
У меня много лишнего кода в функции.
для обычного деления положительных чисел c получением целой части - уж слишком
C++
1
2
3
4
int rec(int _nominal, int _max)
{
    return _max / _nominal;
}
1
soundtrack
42 / 42 / 4
Регистрация: 15.12.2011
Сообщений: 131
30.01.2014, 01:20 #4
zelim, не уверен, что для новичка представленный код будет
Цитата Сообщение от Di3go Посмотреть сообщение
более читабельным и простым
Более коротким - да, но не простым

Di3go, Решение твоей задачи - поделить твоё число max на число nominal и возвратить целую часть. Это и будет результат, если я правильно понял задание.
0
school_bot
14 / 12 / 3
Регистрация: 23.12.2013
Сообщений: 84
30.01.2014, 01:22 #5
Цитата Сообщение от soundtrack Посмотреть сообщение
и возвратить целую часть
то есть просто поделить int на int. целая часть получится автоматически
0
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
30.01.2014, 01:27 #6
soundtrack, согласен: как-то не обратил внимание на то, что
Цитата Сообщение от Di3go Посмотреть сообщение
Так, как я с С++ недавно, решил попрактиковаться с этим вопросом
А в остальном, просто взглянул на ход мыслей автора и, по его просьбе, укоротил его алгоритм, даже не подумав, что можно было тупо предложить целочисленное деление
0
Di3go
Аноним
4 / 4 / 2
Регистрация: 15.12.2013
Сообщений: 148
Завершенные тесты: 2
30.01.2014, 01:28  [ТС] #7
Цитата Сообщение от school_bot Посмотреть сообщение
для обычного деления положительных чисел c получением целой части - уж слишком
C++
1
2
3
4
int rec(int _nominal, int _max)
{
    return _max / _nominal;
}
Вот блин! Как же я не догадался об этом сразу? Спасибо большое! Вообще с головы вылетело, что можно всё сделать в одну строчку
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2014, 01:28
Привет! Вот еще темы с ответами:

Как уменьшить размер exe файла? - C++
Всем привет, начал изучать c++ и меня очень смутило то, что exe файл даже простого hello world весит 542кб!? я просто не могу понять,...

Как уменьшить размер выделенной памяти - C++
Доброе утро! пишет: переопределение формального параметра &quot;text&quot; :( подскажите пожалуйста как уменьшить размер выделенной памяти под...

Как уменьшить время выполнения программы? - C++
Помогите пожалуйста сократить время выполнения программы. Работает за 5.008 сек, а должна за 1 сек. Вот код: #include &lt;iostream&gt; ...

Как уменьшить время работы программы? - C++
#include&lt;iostream&gt; using namespace std; int main() { int a,m,n; double d,o,w; cin&gt;&gt;n&gt;&gt;m; a=0; ...


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

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

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