Сообщение Re[5]: Типовые задачи на собеседованиях по программированию от 08.12.2016 8:21
Изменено 08.12.2016 8:26 antonio_v_krasnom
Здравствуйте, alzt, Вы писали:
A>Здравствуйте, RussianFellow, Вы писали:
A>Я бы переписал сл. образом.
A>
Если цели написать эффективный код нету, то всё нормально (только у нас во всех стайл-гайдах на всех работах инструкцию после условий надо с новой строки писать — иначе очень трудно отладчиком будет ходить; а чаще еще и со скобками).
Можно сэкономить на делениях (оно дорогое вообще-то):
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;
}
}
Re[5]: Типовые задачи на собеседованиях по программированию
Здравствуйте, alzt, Вы писали:
A>Здравствуйте, RussianFellow, Вы писали:
A>Я бы переписал сл. образом.
A>
Если цели написать эффективный код нету, то всё нормально (только у нас во всех стайл-гайдах на всех работах инструкцию после условий надо с новой строки писать — иначе очень трудно отладчиком будет ходить; а чаще еще и со скобками).
Можно сэкономить на делениях (оно дорогое вообще-то):
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;
}
}