Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
rep plz
Заблокирован
1

Можно ли написать более оптимальный код, используя цикл while?

27.07.2015, 23:16. Просмотров 777. Ответов 29
Метки нет (Все метки)

собственно сабж.
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>
 
using namespace std;
 
int main()
{
    int x, y, s, step = 1;
 
    cout << "Vvedite x" << endl;
    cin >> x;
    cout << "Vvedite y" << endl;
    cin >> y;
 
    if (y == 0)
    {
        cout << "S ravno 0" << endl;
    }
 
 
    if (y >= 1)
    {
        s = x;
        while (step < y )
        {
        s *= x;
        step ++;
        }
    cout << "x v stepeni y = " << s;
    }
 
    return 0;
}
если есть более простые варианты, хотелось бы их увидеть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2015, 23:16
Ответы с готовыми решениями:

Можно ли написать более оптимальный или простой код, используя цикл for?
собственно сабж. #include &lt;iostream&gt; using namespace std; int main() {...

Можно ли написать этот код более компактно?
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; void main() {...

как можно более просто написать эту программку(более понятным языком для начинающего)
7. Установить, четным или нечетным является число цифр в записи данного...

Изменить код, используя цикл
Помогите разобраться с циклом, Есть код, его надо изменить под циклический, как...

Переписать код, используя другой цикл
Перепишите, пожалуйста, код, используя только цикл &quot;While&quot; int N=100; cout...

29
Байт
28.07.2015, 23:27     Можно ли написать более оптимальный код, используя цикл while?
  #21

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
Зря вы от хаскеля отвернулись
Да ни от чего я не отворачивался! Просто у меня всего 4 лапы + 1 хвост + 1 пасть, которая жрать хочет.:D

0
Croessmah
28.07.2015, 23:35
  #22

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
+ 1 пасть, которая жрать хочет
:popcorn:

0
rep plz
Заблокирован
29.07.2015, 16:52  [ТС] 23
Цитата Сообщение от Renji Посмотреть сообщение
Ну, если гоняться именно за оптимальностью (а не простотой):
а если за простотой?
0
Байт
Эксперт C
18318 / 12029 / 2506
Регистрация: 24.12.2010
Сообщений: 24,293
30.07.2015, 10:39 24
Цитата Сообщение от rep plz Посмотреть сообщение
а если за простотой?
Пост 6 чем-то не устраивает?
0
rep plz
Заблокирован
30.07.2015, 12:26  [ТС] 25
Цитата Сообщение от Байт Посмотреть сообщение
Пост 6 чем-то не устраивает?
меня устраивает. но хочется вариантов просто я не исключаю возможности что опытные программисты могут упростить еще и его
0
Croessmah
++Ͻ
14609 / 8363 / 1576
Регистрация: 27.09.2012
Сообщений: 20,556
Записей в блоге: 2
Завершенные тесты: 1
30.07.2015, 17:29 26
Цитата Сообщение от rep plz Посмотреть сообщение
просто я не исключаю возможности что опытные программисты могут упростить еще и его
скорее всего, это будет выглядеть так:
C++
1
s = std::pow ( x , y ) ;
2
Байт
Эксперт C
18318 / 12029 / 2506
Регистрация: 24.12.2010
Сообщений: 24,293
30.07.2015, 23:17 27
Цитата Сообщение от rep plz Посмотреть сообщение
я не исключаю возможности что опытные программисты могут упростить еще и его
Странно искать упрощений в ситуации, когда некоторые естественные приемы (например, цикл for) по каким-то неведомым причинам запрещены.
И еще вопрос. А зачем оно вам?
И еще. Какие ваши критерии "простоты"?
0
_Ivana
30.07.2015, 23:27
  #28

Не по теме:

подпись особенно понравилась :D

0
rep plz
Заблокирован
31.07.2015, 07:36  [ТС] 29
Цитата Сообщение от Байт Посмотреть сообщение
Странно искать упрощений в ситуации, когда некоторые естественные приемы (например, цикл for) по каким-то неведомым причинам запрещены.
для вас может быть странно. для меня нет.
Цитата Сообщение от Байт Посмотреть сообщение
И еще вопрос. А зачем оно вам?
я учусь. и единственный кто может мне объяснить что я делаю так, а что нет, это вы. и если я не задам какого-либо вопроса, не спрошу о чем-то, возможно я никогда об этом не узнаю.
Цитата Сообщение от Байт Посмотреть сообщение
И еще. Какие ваши критерии "простоты"?
я не буду озвучивать свои критерии простоты. могу лишь повториться - я просто учусь

Добавлено через 4 минуты
Байт, спросите себя, как бы вы поступили на месте новичка, если бы хотели знать что программисты считают более простым способом, а что более сложным? а что более оптимальным?
0
taras atavin
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
31.07.2015, 07:55 30
rep plz, while вместо for нужен на паскале из-за того, что там счётчик цикла может только увеличиваться/уменьшаться строго на 1. for на c/c++ - оператор цикла вообще не со счётчиком, а с величиной, произвольно изменяемой в заголовке цикла и управляющей циклом, его гибкость позволяет полностью заменить while, которому остаются ровно три роли:
1. Цикл с условием выхода в теле. Прерывается оператором break.
2. Цикл с условием, зависящим только от величин, меняющихся только вне самого цикла. Прерывается путём изменения неких величин в другом потоке (возможно даже принадлежащем другому процессу), или при обработке прерывания, или исключения.
3. Бесконечный цикл. Если и прерывается, то только при снятии процесса, или выключении всего компьютера.
На c/c++ for и в этих случаях может заменить while, но в этих случаях он проигрывает по удобству, да и просто лучше соответствует формулировке задачи. В остальных же случаях удобней for, даже в тех, когда условие выхода из цикла сложней, чем сравнение величины с ограничением, для чего вообще то тоже предназначен while, а не for, но на c/c++ for даже в этих случаях применяется вместо while удобнее, чем сам while. Не говоря уж об аддитивных счётчиках с не единичным шагом, аддитивных счётчиках с переменным шагом, или мультипликативных счётчиках.
1
31.07.2015, 07:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2015, 07:55

Можно ли инициализировать динамический массив не используя цикл?
Когда создавали статический массив, можно было сделать так: int...

Можно ли сделать бесконечный цикл с while, используя тип bool?
... bool f; f=false; while(f=false) { ... ... ... if(....)//какое-то...

Написать, используя цикл for, ввод с клавиатуры 10 чисел
Написать, используя цикл for, ввод с клавиатуры 10 чисел. Цикл может...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

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