Re[5]: Типовые задачи на собеседованиях по программированию
От: antonio_banderas Россия  
Дата: 08.12.16 08:21
Оценка: -2
Здравствуйте, alzt, Вы писали:

A>Здравствуйте, RussianFellow, Вы писали:


A>Я бы переписал сл. образом.


A>
A>#include <stdio.h>

A>for (int i=1; i<=100; i++)
A>{
A>    bool mul3 = (i%3)==0;
A>    bool mul5 = (i%5)==0;

A>    if(mul3 && mul5) printf("FizzBuzz\n");
A>    else if(mul3) printf("Fizz\n");
A>    else if(mul5) printf("Buzz\n");
A>    else printf("%d\n",i);
A>}
A>


Если цели написать эффективный код нету, то всё нормально (только у нас во всех стайл-гайдах на всех работах инструкцию после условий надо с новой строки писать — иначе очень трудно отладчиком будет ходить; а чаще еще и со скобками).
Можно сэкономить на делениях (оно дорогое вообще-то):

    for (unsigned i = 1, counter3 = i, counter5 = i; i <= 100; ++i, ++counter3, ++counter5)
    {
        if (counter3 == 3)
        {
            counter3 = 0;
        }
        if (counter5 == 5)
        {
            counter5 = 0;
        }

        if (counter3 == 0 && counter5 == 0)
        {
            std::cout << "mod15" << std::endl;
        }
        else if (counter3 == 0)
        {
            std::cout << "mod3" << std::endl;
        }
        else if (counter5 == 0)
        {
            std::cout << "mod5" << std::endl;
        }
        else
        {
            std::cout << i << std::endl;
        }
    }
Отредактировано 08.12.2016 8:26 antonio_v_krasnom . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.