Определение наибольшего N. Использовать функцию вычисления факториала - C (СИ)

  1. Дано натуральное число А.Составить программу определения такого наибольшего N,что N! < A (A>1).Использовать функцию вычисления факториала.C1 2 3 long fakt(int n){      return ((n==1)? 1 :n*fakt(n-1) );      }


textual

Код к задаче: «Определение наибольшего N. Использовать функцию вычисления факториала - C (СИ)»

#include <stdio.h>
 
long fakt(int n){
     return ((n==1)? 1 :n*fakt(n-1) );
     }
 
main()
{
    long a,f=0;
    int n=1;
    printf("Enter A: ");
    scanf("%d",&a);
    do
    {
        n++;
        f=fakt(n);
     }
    while(f<a);
    printf("N = %d",n-1);
}

СДЕЛАЙТЕ РЕПОСТ

11   голосов, оценка 4.455 из 5



Похожие ответы
  1. помогите разобраться с этим заданием. Нужно дополнить код функциями, чтобы выполнялась задача: определение количества заданного символа в заданной строкеC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 #include #include   int how_many(char ch, char sentence[]) {     int count = 0;     int position;       // **********************************************************************             // **********************************************************************       return count; }     void clean_up(char ch) {     while (ch != EOF && ch != '\n')         ch = getchar(); }     int main() {     char ch;     char sentence[1024];       do {                 printf("Enter a character: ");                   ch = getchar();             clean_up(ch);                   if (ch < ' ' || ch > '~') {             printf("That was not a legal character. Try again.\n");         }         } while (ch < ' ' || ch > '~');           printf("Enter a sentence: ");           fgets(sentence, 1024, stdin);           printf("The character '%c' is in the sentence %d times.\n", ch, how_many(ch, sentence));       return 0; }

  1. Я пытаюсь разбить список на два, ну вы все можете увидеть сами:C1 2 3 4 5 6 7 8 9 10 head1 = head; p = head1;     i=1;     while (i<(n/2))  //4/2 == 2;  3/2 == 1,5 = 2;     {         p = p->next;         i++;     }     head2 = p->next;     p->next =     NULL;Вот только выводит у меня в случае нечетного кол-ва элементов первый список на 1 короче второго, а надо бы наоборот. Что не так здесь записано? Даже на бумажке проверил, что я упустил? Вывод списков у меня такого вида:C1 2 3 4 5 6 7 p = head1;     while (p!=NULL)  //такое произойдет, когда уже выведется последний элемент, и указатель упрется в грань     {         printf("->%.2f \n",p->content);         p = p->next;     }     printf("\n");Структура:C1 2 3 4 5 typedef struct list {     float         content;     struct list   *next; } list;Переменные:C1 2 3 4 5 6 int     n; int     i; short size_list = sizeof(list); list *head; list *head1; list *head2;

  1. Прошу натолкнуть на мысль как решить данную задачу: "Дана строка. Необходимо определить количество слов, которые слева и справа читаются одинаково (палиндромы). Слова разделены пробелами." Из условий для сдачи: доп. массивы - нельзя, функции из - нельзя. В моём представлении, нужно как-то разбить на лексемы без strtok и далее в лексемах сравнить символы с кодами ASCII? И можно ли, когда строку с помощью strtok разбил на лексемы и внёс их в массив указателей, далее каждый указатель на строку(полученную лексему) внести в новый массив, чтоб в массиве строка была посимвольно сохранена? Пример: была строка "Скоро сдача работы" -> далее стал массив из 4 указателей -> затем первый указатель, ктр косвенно адресует строку "Скоро", как-то внести в новый массив посимвольно. Заранее спасибо. 1 курс заочки, могу изъясняться как колхоз, т.к. до этого программирование ассоциировалось с тетрисом.

  1. Приветствую уважаемые программисты! Я только начал изучать СИ, с нуля. Мне нужно написать следующую программу: Ввод = все что угодно. Вывод = "Вы ввели ... , это - (целое число, символ, массив, с плавающей запятой и т.д.)" Как это вообще возможно сделать, если в операторе объявления переменной я обязан указать ее тип? Более того я догадываюсь, что есть несколько способов решить данную задачу. подскажите что - нибудь? З.Ы. Приношу извинения, если вопрос уже поднимался. Я вроде не нашел ответа, но вдруг он уже где-то был...

  1. На страницах форума нашел программу на паскале, мне нужна помощь в ее переводе на язык С. Программа должна считывать введенный день , а выводить следующий, учитывая високосные года. Еще должна выводить что это за день недели.(временные сроки программы : 1940-2040 года)

  1. Здравствуйте. Я перешёл на MVS 2015 и при открытии проекта у меня выдаёт следующие ошибки: Скрин - Код Ошибка C2371 int32_t: переопределение; различные базовые типы Ошибка C2371 uint32_t: переопределение; различные базовые типы Строки:C1 2 typedef int                int32_t; typedef unsigned int       uint32_t; Если же я попытаюсь изменить "stdint.h", то: Код Ошибка при попытке разрешить изменение файла stdint.h. Как мне быть?

  1. Помогите с решением, пожалуйста. Даны два целых числа. Выведите значение наибольшего из них. Если числа равны, выведите любое из них. Формат входных данных Вводятся два числа. Формат выходных данных Выведите ответ на задачу.

  1. Написать следующие функции в двух вариантах: с использованием индексов и указателей. В строке string1 определяет последнее вхождение в нее строки string2. Возвращает указатель на начало вхождения. В случае неуспеха возвращается -1. const char* rat(const char* string1, const char* string2) Функции типа strstr использовать НЕЛЬЗЯ! С комментариями, пожалуйста!

  1. Имеются стол прямоугольной формы с размерами a×b (a и b – целые числа, a > b) и кости домино с размерами c × d × e (c, d и e – целые числа, c > d > e). Найти вариант размещения на столе наибольшего количества костей. Все размещаемые кости должны лежать на одной и той же грани в один ярус без свешивания со стола. Все ребра костей домино должны быть параллельны или перпендикулярны каждой стороне стола. если можно с пояснениями

  1. Дан одномерный массив. Определить минимальное счастливое число среди чисел с четным количеством цифр. Счастливое число - это число, у которого сумма цифр первой половины числа равна сумме второй половины.