факториал в си



Автор Ней мар задал вопрос в разделе Другие языки и технологии

Помогите, пожалуйста, с нахождением факториала. Язык Си. и получил лучший ответ

Ответ от Krab Bark[гуру]
Зачем два цикла? Затем, это не стандартный С, это C++ или C99. И нет заголовочного файла. Правильно

#include<stdio.h>
int main (){
int number = 1,j;
for(j = 1; j <= 10; j++){number *=j; printf("%d
", number);}
return 0;}

Кроме того, скрипты - это не С и не C++, Под скриптами обычно понимаются, программы, выполняемые интерпретаторами (перевод в машинный язык и сразу выполнение по одной команде) , а не компиляторы.
P.S. Если это C99 - OK 🙂
Да, пропустил: факториалы ВСЕХ чисел. Тогда подправляю.
P.P.S. Виталий, максимальный размер int зависит от реализации компилятора. В 32-битных системах, как правило, до 2 миллиардов.

Ответ от Виталий[гуру]
У тебя переполнение типа int. Число настолько большое, что не влезает в тот участок памяти, что ты ей выделил своим int number = 1, если взять n <= 9, то выводит число. Решение - создать свой класс для хранения огромных чисел. Суть - число представляется в виде массива int-овых значений, например, число 101010 будет выглядеть как массив из 6 элементов, где, скажем, 3й элемент равен одному. Может есть и попроще рецепт на конкретно твою задачу, но тебе будет полезно узнать про длинную арифметику и как быстро с ней работать. p.s. Кстати, да, не посмотрел на задачу. Если нужно просто найти факториал десяти, то второй цикл и не нужен был. Достаточно было убрать второй, и все работало бы как часы. p.p.s. вчитался еще раз, и не понял условие. Всё-таки нужно найти один факториал 10, или 10 факториалов от 1 до 10? Непонятное условие. p.p.p.s. Кстати, еще непонятка для меня. Насколько я помню, в int хранится от -32768 до 32767. Если я у себя оставляю тип int и меняю n<=10 на n<=9, то выводит число 1073741824, а это уже явно long. В чем прикол? UPD. Krab Bark, спасибо. Я намудрил с циклами. Чуть-чуть изменил ваш цикл и получилось: #include <stdio.h> int main (void){ int number = 1, j; for(j = 1; j <= 10; j++){ number *= j; printf("%d
", number); } return 0; } А зачем при каждой итерации тебе выводить текущую величину number? Оставь ее за кодовым блоком, ... for(j = 1; j <= 10; j++){ number *= j; } printf("%d
", number); ... Или вообще их убери, если у тебя всего одна операция: ... for(j = 1; j <= 10; j++) number *= j; ... Удачи 🙂

Ответ от Николай[гуру]
Вопрос вы везде используете int а в printf используете "% i
" вместо "% d
"

Ответ от Ёофья Ерина[гуру]
int main (){ int number = 1; for(int n = 1; n <= 10; n++){ number*=n; printf("%d
",number); } return 0; } Так вроде нормально должно быть Проверила - работает

Ответ от Oleg[гуру]
#include <iostream> int main () { int number = 1; for(int n = 1; n <= 10; n++) number *= n; printf("%d
", number); return 0; }

Ответ от Jurijus Zaksas[гуру]
for (int j=1; j<=10; j++) { long long int n=1; for (k=1; k<=j; k++) n*=k; printf("%d!=%d",j,n); }

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Помогите, пожалуйста, с нахождением факториала. Язык Си.

В чём различие между DVD-R и DVD+R или DVD-RW и DVD+RW?
В чём различие между DVD-R и DVD+R или DVD-RW и DVD+RW.

Устройства с меткой DVD-R/RW
подробнее...

"крутящий момент" в двигателе автомобиля? Объясните, пожалуйста, что это такое и на что влияет.
При одинаковых оборотах коленвала,
двигатель с большим крутящим моментом МОЩНЕЕ.
Сравните
подробнее...
спросили в Вихровы
каков физический смысл критерия Рейнольдса?. что такое критерий Рейнольдса.? от каких факторов он зависит?
#yaimg34510#Физический смысл: числитель пропорционален динамическому напору потока (силам инерции)
подробнее...

Кто читал "Смирительная рубашка" Джека Лондона? Какие у Вас впечатления?
Идея перерождений.
Смысл сводится сюда: Смерти не существует. Жизнь -- это дух, а дух не может
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Другое География
Назовите основные центры алюминиевой, медной и никелевой промышленности России. Пожалуйста. Для ЕГЭ по географии нужно
Металлургический комплекс — совокупность отраслей производящих разнообразные металлы. Она включает
подробнее...

Физика "Применение веса" вес как физическая величина. Вес и его приминение . Что можно сказать по такой теме?
Вес — сила воздействия тела на опору (или другой вид крепления в случае подвешенных тел) ,
подробнее...

что такое крутящий момент, обьясните пожалуйста простым языком
Разобраться, что такое крутящий момент, можно на простом примере. Возьмем палку и один ее конец
подробнее...
спросили в Другое
Что означает релевантность? Что означает релевантность? Ревалентность и релевантность-одно и тоже?
Релевантность (лат. relevo — поднимать, облегчать) в информационном поиске — семантическое
подробнее...
спросили в Другое
Почему на земле рождаются близнецы?
Двойня может получиться двумя способами.
1. Если в организме женщины образуются одновременно
подробнее...

Что такое реентерабельная программа?
от ре-энтер
Программа, в которую можно повторно войти.
Например, асинхронно работающие
подробнее...

Что такое бореальные леса?
Несмотря на то, что термин "бореальный лес" довольно распространен, он, как ни странно, до сих пор
подробнее...

Кто мне объяснит что такое крутящий момент человеческим языком?
Разобраться, что такое крутящий момент, можно на простом примере. Возьмем палку и один ее конец
подробнее...

что такое КРУТЯЩИЙ МОМЕНТ у двигателя? как он чувствуется при вождении?
Крутящий момент - это сила, с которой двигатель крутит колеса. Чем он больше, тем быстрее
подробнее...

от чего зависит напряжённость электромагнитного поля?
Ну, Роман, Вы такую статью накатали m/
Только вот дело в том, что напряженность
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*