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

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

Восстановить пароль Регистрация
 
Di3go
Аноним
 Аватар для Di3go
3 / 3 / 2
Регистрация: 15.12.2013
Сообщений: 134
30.01.2014, 00:32     Как уменьшить количество кода? #1
Здравствуйте. Имеется костыль код. Этот код делает типа "сколько чисел вместится в одно большое число". Так, как я с С++ недавно, решил попрактиковаться с этим вопросом. Создал функцию. Вроде работает. В том то и дело что "работает". У меня много лишнего кода в функции. Все работает, извините, через задницу.

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

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

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; 
}
Нужно сделать код более читабельным и простым. Заранее спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 00:32     Как уменьшить количество кода?
Посмотрите здесь:

C++ Дан массив.Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо
Как уменьшить чувствительность мыши? C++
C++ Уменьшить программу/снизить количество операторов
C++ Как уменьшить размер выделенной памяти
C++ [Сортировка слиянием] Уменьшить количество требуемой памяти для сортировки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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; 
}
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;
}
soundtrack
 Аватар для soundtrack
41 / 41 / 4
Регистрация: 15.12.2011
Сообщений: 131
30.01.2014, 01:20     Как уменьшить количество кода? #4
zelim, не уверен, что для новичка представленный код будет
Цитата Сообщение от Di3go Посмотреть сообщение
более читабельным и простым
Более коротким - да, но не простым

Di3go, Решение твоей задачи - поделить твоё число max на число nominal и возвратить целую часть. Это и будет результат, если я правильно понял задание.
school_bot
14 / 12 / 3
Регистрация: 23.12.2013
Сообщений: 84
30.01.2014, 01:22     Как уменьшить количество кода? #5
Цитата Сообщение от soundtrack Посмотреть сообщение
и возвратить целую часть
то есть просто поделить int на int. целая часть получится автоматически
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
30.01.2014, 01:27     Как уменьшить количество кода? #6
soundtrack, согласен: как-то не обратил внимание на то, что
Цитата Сообщение от Di3go Посмотреть сообщение
Так, как я с С++ недавно, решил попрактиковаться с этим вопросом
А в остальном, просто взглянул на ход мыслей автора и, по его просьбе, укоротил его алгоритм, даже не подумав, что можно было тупо предложить целочисленное деление
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2014, 01:28     Как уменьшить количество кода?
Еще ссылки по теме:

Как уменьшить время работы программы? C++
C++ Оптимизировать алгоритм, чтобы уменьшить количество операций для проверок деления
Как уменьшить нагрузку ЦП, в SFML? C++

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

Или воспользуйтесь поиском по форуму:
Di3go
Аноним
 Аватар для Di3go
3 / 3 / 2
Регистрация: 15.12.2013
Сообщений: 134
30.01.2014, 01:28  [ТС]     Как уменьшить количество кода? #7
Цитата Сообщение от school_bot Посмотреть сообщение
для обычного деления положительных чисел c получением целой части - уж слишком
C++
1
2
3
4
int rec(int _nominal, int _max)
{
    return _max / _nominal;
}
Вот блин! Как же я не догадался об этом сразу? Спасибо большое! Вообще с головы вылетело, что можно всё сделать в одну строчку
Yandex
Объявления
30.01.2014, 01:28     Как уменьшить количество кода?
Ответ Создать тему
Опции темы

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