Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C (СИ) мини задачка по указателям что-то не соображу что сдесь написано: int *(*tab()); вопрос так и звучит : "опишите словами что означает эта строчка?" спасибо. https://www.cyberforum.ru/ c-beginners/ thread2575782.html Массив структур C (СИ)
Может кто-нибудь помочь с этим? Ввод данных проходит вроде нормально, но выводит какие-то левые значения. Навыки программирования уровня sololearn. Само задание: 1.) Описать структуру с именем TRAIN, содержащую следующие поля: • название пункта назначения; • номер поезда; • время отправления. 2.) Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив,...
C (СИ) Программа по созданию матрциы Подскажите, пожалуйста, как написать структуру для создания матрицы(нужно именно так, а не иначе) Матрица константная(например 3 х 3). Как написать эту структуру? https://www.cyberforum.ru/ c-beginners/ thread2575588.html C (СИ) Перевод из двоичной системы в десятичную #include <iostream> #define rozmiar 32 using namespace std; char* funkcja(int liczba) { char* tab = new char{}; https://www.cyberforum.ru/ c-beginners/ thread2575464.html
C (СИ) Подсчитать сумму строк массива и вывести максимальное и минимальное значение
Задача состоит в следующем: В двумерном массиве хранится информация о баллах, полученных спортсменами в каждом из 5-ти видов спорта (в первой строке – информация о баллах первого спортсмена, во второй – второго и т.д.). Общее число спортсменов равно 6. Определить сколько баллов набрал спортсмен-победитель и сколько баллов набрал спортсмен, занявший последнее место. Написал код: int A, *...
C (СИ) Составить программу вычисления значения функции https://www.cyberforum.ru/ c-beginners/ thread2575367.html
Составить программу вычисления значения функции f(x,y) для заданных значений a=11.2, b=10.83, c=9.31 и произвольного x с автоматическим выбором необходимой формулы: https://**********/TrbMqaK
C (СИ) Выход из программы https://www.cyberforum.ru/ c-beginners/ thread2575361.html
Программа, написананя на Си будет работать на ноутбуке. Если пропадет электричество, то ноут некоторое время будет работать от батареи, а потом Windows ее закроет, при этом некоторые важные данные пропадут. Можно ли из кода на Си (откомпилированного) каким-либо образом узнать что Windows собирается его закрыть (и сохранить данные в файл)?
C (СИ) Поменять местами минимальный по модулю и первый четный элементы матрицы
Здравствуйте, помогите найти ошибку в коде программы. Условия такое ,что нужно поменять местами минимальный по модулю и первый четный элементы матрицы. Ввожу матрицу 2*2 { {5,4},{0,1}} на выходе получаю { {4,0},{0,1}} Программа: #include <stdio.h> #include <stdbool.h> #include <math.h> void input (int *m,int*n,int a) { int i,j;
C (СИ) Найти длину вектора https://www.cyberforum.ru/ c-beginners/ thread2575271.html
Требовалось создать 1)массив структур векторов A, которые хранят координаты (x,y) 2)50000 запросов с различными интервалами (a,b) Реализовать 2 функции 1) Простая, 2) С перерасчетом (сложность О(1)) которые бы вычисляли сумму векторов на интервале (a,b) и результаты вывести в текстовый файл. Получился такой код, но что простая функция, что сложная выдает в ответе только нули. Не понимаю...
C (СИ) Пути в графе Доброго времени суток, столкнулся с маленькой проблемой, это пути в графе. Суть такова, через bfs вычислил от End до Start все точки пути. Граф не ориентированный и без длины ребер (грубо говоря ребра длиной 1). Когда запускаю программу, в одном случае потоки разделяются и идут по разным путям, в другом случае встают поперек других и не дают путь. Использовать пытался псевдокод Эдмондса-Карпа,... https://www.cyberforum.ru/ c-beginners/ thread2575144.html
Сложить цифры двузначного числа C (СИ)
Здрасьте.Cкажите, как написать программу?Запрашивается двухзначное число, затем разложить его на разряды и сложить. К примеру одного число- 25 получить 2 и 5, затем сложить между собой? Я написал так: #include<stdio.h> #include<locale.h> int main() { char *locale=setlocale(LC_ALL,""); //****************************************
C (СИ) Функция: выделить из строки слова, содержащие заданный пользователем символ https://www.cyberforum.ru/ c-beginners/ thread2574901.html
Доброго времени суток уважаемые форумчане. Пытаюсь написать функцию выделения слов, содержащих заданный пользователем символ, из переданной ей строки. Функция также должна распечатывать длины этих слов. Если не трудно, помогите пожалуйста, буду очень благодарен. #include <stdio.h> #include <string.h> #define DELIM " \n\t,.;:'?!" void words_with_symbol(char s, char c) {
Модератор
Эксперт функциональных языков программированияЭксперт Python
37329 / 20761 / 4275
Регистрация: 12.02.2012
Сообщений: 34,165
Записей в блоге: 14
28.01.2020, 08:30 0

Вычислить факториал - C (СИ) - Ответ 14208754

28.01.2020, 08:30. Показов 1783. Ответов 4
Метки (Все метки)

Ответ

Вот вычисление факториалов достаточно больших чисел:
C
1
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
char * cutZero(char *s)
{
    int l=strlen(s);
    int i,k;
    char *r;
    k=0;
    for (i=0; i<l; i++)
    {
        if (s[i] != '0') break;
        k++;
    }
    if (k==0)
       return s;
    else
    {
        r=(char *) calloc(l-k+1,1);
        strcpy(r,s+k);
        return r;
    }
}
 
char * multByShort(char *s, int k) // умножить длинное s на k<10
{
    int i,j,a,b,r;
    int l=strlen(s);
    char *res=(char *) calloc(l+2,1);
    res[0]=' ';
    r=0;
    j=l;
    for (i=l-1; i>=0; i--)
    {
        a=s[i]-'0';
        a=a*k+r;
        b=a%10;
        r=a/10;
        res[j--]=b+'0';
    }
    res[j]=r+'0';
    return res; 
}
 
char * addLong(char *s1, char *s2)
{
    int l1=strlen(s1);
    int l2=strlen(s2);
    int ll=((l1>l2)?l1:l2);
    char *res = (char *) calloc(ll+2,1);
    int i1,i2,a1,a2,b,r,j,a;
    i1=l1-1;
    i2=l2-1;
    r=0;
    j=ll;
    res[0]='0';
    while(1)
    {
        if ((i1<0) && (i2<0)) break;
        a1=(i1>=0)?(s1[i1]-'0'):0;
        a2=(i2>=0)?(s2[i2]-'0'):0;
        a=a1+a2+r;
        b=a%10;
        r=a/10;
        res[j--]=b+'0';
        i1--;
        i2--;
    }
    res[j]=r+'0';
    return res;
}
 
 
char * multBy10(char *s,int p)
{
    int ll,l,i,j;
    ll=strlen(s);
    l=ll+p+1;
    char *r = (char *) calloc(l,1);
    j=l-2;
    for (i=1; i<=p; i++) r[j--]='0';
    for (i=ll-1; i>=0; i--) r[j--]=s[i];
    return r;
}
 
char * multLong(char *s1, char *s2)
{
    char * tmp1;
    char * tmp2;
    char * tmp3;
    char * res;
    int l2=strlen(s2);
    int i2=l2-1;
    int p=0,l;
    
    res=(char *) calloc(2,1);
    res[0]='0';
    
    while(i2>=0)
    {
        tmp1=multByShort(s1,(s2[i2]-'0'));
        tmp2=multBy10(tmp1,p);
 
        p++;
        
        free(tmp1);
        tmp3=addLong(res,tmp2);
        free(tmp2);
        free(res);
        l=strlen(tmp3);
        res=(char *) calloc(l+1,1);
        strcpy(res,tmp3);
 
        free(tmp3);
        i2--;
    }
    return res;
    
}
 
 
int main(void) {
 
    char *one=(char *) calloc(1,2);
    one[0]='1';
    char *acc=(char *) calloc(1,2);
    strcpy(acc,one);
    char *k  =(char *) calloc(1,2);
    strcpy(k,one);
    int i,l;
    char * tmp;
    char * tmp1;
 
    // Считаем факториалы чисел от 1 до 100
    
    for (i=1; i<=100; i++)
    {
        tmp=multLong(acc,k);
        tmp1=cutZero(tmp);
        free(tmp);
        printf("%s\n",tmp1);
        free(acc);
        l=strlen(tmp1);
        acc=(char *) calloc(l+1,1);
        strcpy(acc,tmp1);
        free(tmp1);
        tmp1=addLong(k,one);
        free(k);
        l=strlen(tmp1);
        k=(char *) calloc(l+1,1);
        strcpy(k,tmp1);
        free(tmp1);
    }
    
    free(acc);
    free(k);
    return 0;
}
Результат:

Кликните здесь для просмотра всего текста

1
2
6
24
120
720
5040
40320
362880
3628800
39916800
479001600
6227020800
87178291200
1307674368000
20922789888000
355687428096000
6402373705728000
121645100408832000
2432902008176640000
51090942171709440000
1124000727777607680000
25852016738884976640000
620448401733239439360000
15511210043330985984000000
403291461126605635584000000
10888869450418352160768000000
304888344611713860501504000000
8841761993739701954543616000000
265252859812191058636308480000000
8222838654177922817725562880000000
263130836933693530167218012160000000
8683317618811886495518194401280000000
295232799039604140847618609643520000000
10333147966386144929666651337523200000000
371993326789901217467999448150835200000000
13763753091226345046315979581580902400000000
523022617466601111760007224100074291200000000
20397882081197443358640281739902897356800000000
815915283247897734345611269596115894272000000000
33452526613163807108170062053440751665152000000000
1405006117752879898543142606244511569936384000000000
60415263063373835637355132068513997507264512000000000
2658271574788448768043625811014615890319638528000000000
119622220865480194561963161495657715064383733760000000000
5502622159812088949850305428800254892961651752960000000000
258623241511168180642964355153611979969197632389120000000000
12413915592536072670862289047373375038521486354677760000000000
608281864034267560872252163321295376887552831379210240000000000
30414093201713378043612608166064768844377641568960512000000000000
1551118753287382280224243016469303211063259720016986112000000000000
80658175170943878571660636856403766975289505440883277824000000000000
4274883284060025564298013753389399649690343788366813724672000000000000
230843697339241380472092742683027581083278564571807941132288000000000000
12696403353658275925965100847566516959580321051449436762275840000000000000
710998587804863451854045647463724949736497978881168458687447040000000000000
40526919504877216755680601905432322134980384796226602145184481280000000000000
2350561331282878571829474910515074683828862318181142924420699914240000000000000
13868311854568983573793901972038940634590287677268743254082129494016000000000000 0
83209871127413901442763411832233643807541726063612459524492776964096000000000000 00
50758021387722479880085681217662522722600452898803600309940593948098560000000000 0000
31469973260387937525653122354950764088012280797258232192163168247821107200000000 000000
19826083154044400641161467083618981375447736902272686281062795996127297536000000 00000000
12688693218588416410343338933516148080286551617454519219880189437521470423040000 0000000000
82476505920824706667231703067854962521862585513454374929221231343889557749760000 00000000000
54434493907744306400372924024784275264429306438879887453286012686967108114841600 0000000000000
36471110918188685288249859096605464427167635314049524593701628500267962436943872 000000000000000
24800355424368305996009904185691715810473992013553676723717107380182214457121832 96000000000000000
17112245242814131137246833888127283909227054489352036939364804092325727975414064 7424000000000000000
11978571669969891796072783721689098736458938142546425857555362864628009582789845 319680000000000000000
85047858856786231752116764423992601028858460812079623588643076338858868037807901 7697280000000000000000
61234458376886086861524070385274672740778091784697328983823014963978384987221689 274204160000000000000000
44701154615126843408912571381250511100768007002829050158190800923704221040671833 17016903680000000000000000
33078854415193864122595302822125378214568325182093497117061192683541123570097156 5459250872320000000000000000
24809140811395398091946477116594033660926243886570122837795894512655842677572867 409443815424000000000000000000
18854947016660502549879322608611465582303945353793293356724879829618440434955379 23117729972224000000000000000000
14518309202828586963407078408630828498374037922420835884678157468806199134915642 0080065207861248000000000000000000
11324281178206297831457521158732046228731749579488251990048962825668835325234200 766245086213177344000000000000000000
89461821307829752868514417153983165206980821677957190721386806322783799069350186 0533361810841010176000000000000000000
71569457046263802294811533723186532165584657342365752577109445058227039255480148 842668944867280814080000000000000000000
57971260207473679858797342315781091054123572447316259587458650497163901796938920 56256184534249745940480000000000000000000
47536433370128417484213820698940494664381329406799332861716093407674399473489914 8613007131808479167119360000000000000000000
39455239697206586511897471180120610571436503407643446275224357528369751562996629 334879591940103770870906880000000000000000000
33142401345653532669993875791301312880006662862420494871188460323830591312917168 64129885722968716753156177920000000000000000000
28171041143805502769494794422606115948005663433057420640510191275256002615979593 3451040286452340924018275123200000000000000000000
24227095383672732381765523203441259715284870552429381750838764496720162249742450 276789464634901319465571660595200000000000000000000
21077572983795277172136005186993895952297837380613562123229725112146541157275931 74080683423236414793504734471782400000000000000000000
18548264225739843911479684564554628438022096894939934668442158098688956218402819 9319100141244804501828416633516851200000000000000000000
16507955160908461081216919262453619309839666236496541854913520707833171034378509 739399912570787600662729080382999756800000000000000000000
14857159644817614973095227336208257378855699612846887669422168637049853930940658 76545992131370884059645617234469978112000000000000000000000
13520015276784029625516656875949514214758686647690667779174173459715367077155999 4765685283954750449427751168336768008192000000000000000000000
12438414054641307255475324325873553077577991715875414356840239582938137710983519 518443046123837041347353107486982656753664000000000000000000000
11567725070816415747592051623062404362147532295764135351861422812132468071214673 15215203289516844845303838996289387078090752000000000000000000000
10873661566567430802736528525678660100418680358018287230749737443404519986941792 7630229109214583415458560865651202385340530688000000000000000000000
10329978488239059262599702099394727095397746340117372869212250571234293987594703 124871765375385424468563282236864226607350415360000000000000000000000
99167793487094968920957140154189380115818364865126779544437605483849222280909149 9987689476037000748982075094738965754305639874560000000000000000000000
96192759682482119853328425949563698712343813919172976158104477319333745612481875 498805879175589072651261284189679678167647067832320000000000000000000000
94268904488832477456261857430572424738096937640789516634942387772947070700232237 98882976159207729119823605850588608460429412647567360000000000000000000000
93326215443944152681699238856266700490715968264381621468592963895217599993229915 6089414639761565182862536979208272237582511852109168640000000000000000000000
93326215443944152681699238856266700490715968264381621468592963895217599993229915 608941463976156518286253697920827223758251185210916864000000000000000000000000



Вернуться к обсуждению:
Вычислить факториал C (СИ)
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2020, 08:30
Готовые ответы и решения:

Вычислить факториал
добрый вечер, помогите с программой, как написать факториал #include &lt;stdio.h&gt; int main (void)...

Вычислить факториал (k-1)!
Доброго дня. Пожалуйста, прошу помощи. Нужно написать код вычисления факториала (k-1)! Сам смог...

Вычислить факториал
Выручите пожалуйста. Нужно написать программу, выводящую на экран факториал N, N с клавиатуры. Пока...

Вычислить факториал
Помогите разобраться. Я заплутался с факториалом. В гугле искал но посвюду саму систему факториала...

4
28.01.2020, 08:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2020, 08:30
Помогаю со студенческими работами здесь

Вычислить факториал
Факториал считает правильно, а вот со степенью какая-то беда. #include &lt;stdio.h&gt; #include...

Вычислить факториал
заданные натуральные числа m и n. получить Вычисление факториала описать с помощью функции С

Вычислить факториал числа
Дано целое число N (&gt; 0). Найти произведение N! = 1·2·…·N (N–факториал). Чтобы избежать...

Как вычислить факториал рекурсивно?
Как написать рекурсивную функцию вычисления факториала неотрицательного числа в С(СИ)?

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru