Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение
Ну как-то это очень странно выглядит. Тем более, что алгоритм крайне прост. Всё же разница между двумя и тремя вложенными циклами велика, а где-то в теле статьи автор пишет о временах выполнения. Да и использование рэнжей в данном случае представляется мне слишком искусственным. Кроме того, если автор не в состоянии написать простейшую функцию на С, то почему я должен доверять его умению сделать это на с++.
Я как-то не готов считать использование лишнего внутреннего цикла неоптимальностью. Непониманием да, типа язык знает, думать не умеет.
Смущает отвратительный код на фоне глубокомысленных рассуждений. Автор, похоже, не заморачивается над размышлением по поводу алгоритма, главное, быстро скомпилировать. Так что я как-то очень скептически отнёсся ко всему остальному. Три вложенных цикла — сила!
void printNTriples(int n)
{
    int i = 0;
    for (int z = 5; ; ++z)
        for (int x = 3; ; ++x){
		int y = sqrtl(z*z - x*x);
		if ( y < x ) break;
		if ( y*y + x*x == z*z){
                        printf("%d, %d, %d\n", x, y, z);
			if ( ++i == n) return;
		}
	}
}

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность