Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

N фактуриел

Featured Replies

Добър вечер.Имаме за задача да направа сумата на N факториел.Ако можете да помогнете ще съм ви благодарен :P

Сигурен ли си, че ти искат сумата на N! или само да се изчисли N! ?

Ако е първото, бързо се получават доооста големи числа.

Ако е второто:

long int factorial_recursive(long int N) {
   return (N > 1)? N*fac(N-1) : 1;
}

long int factorial_iterative(long int N) {
	long int result = 1;
	if (N > 0) {
		for (long int n = N; n > 1; --n)
			result *= n;
	}
	return result;
}

Редактирано от synner (преглед на промените)

Имам 2 забележки: 1. малка правописна грешка в името на функцията когато правиш рекурсивното извикване. 2. (зависи от какво се очаква от програмата) Ако компилатора го подържа, може да ползва long long като тип, че по стандарт long int може да е 4 байта и факториел 12 е максималното, което може да се сметне. С 64 битов тип става 20. Аз бих ползвал double / long double. Може да има и по-добър начин, но не се сещам сега.

Редактирано от flare (преглед на промените)

Заповядай колега:

#include <iostream>
using namespace std;
int factorialFinder(int a);
int main()
{
	int num;
	int result;
	cout << "Enter a number: " << endl;
	cin >> num;
	result = factorialFinder(num);
	cout << result << endl;
	return 0;
}
int factorialFinder(int a)
{
	int i,fact;
	fact = 1;
	if(a<=1)
	{
		return 1;
	}
	else{
		for(i=1;i<=a;i++)
		{
			fact = fact * i;
		}
		return fact;
	}
}

Редактирано от frozener (преглед на промените)

  • Автор

Извинявай ме се за грешката.Трябва само да напиша програма ,която изчислява N факториел.

И трябва да бъде на C.

Функциите на synner са на C. Само трябва да въведеш число, да си извикаш едната и да изведеш отговора. Можеш и да модифицираш програмата на frozener. Тя не толкова далече от C... само сменяш заглавния файл, махаш неймспейса и сменяш cin/cout с scanf/printf...

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.