Форум программистов, компьютерный форум CyberForum.ru

факториал с точностью до единицы - C++

Восстановить пароль Регистрация
 
RARNAME
Сообщений: n/a
12.11.2012, 18:34     факториал с точностью до единицы #1
Привет всем! Помогите исправить код,считает правильно все факториалы от 0 до 20,у остальных неверно. Посоветовали ввести ограничение на числа хранимые в result от 0 до 9 включительно,но мне так и не удалось эт правильно сделать.
вот код программы:
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
#include <stdio.h>
#include <stdlib.h>
unsigned char result[999];
unsigned int n,i,r,rd,re;
int k,j;
void main()
{printf ("\nВведите число от 0 до 1000\n");
do
{scanf ("%d", &k);
if(k<0 || k>1000)
printf("число должно быть в пределе от 0 до 1000\n");}
while(k<0 || k>1000);
for(result[0]=1,n=0,i=1;i<=k;i++)
{re=0;
for(j=0;j<=n;j++)
{r=result[j]*i+re;
re=r%10;
rd=r/10;
result[j]=re;
re=rd;}
if(rd!=0)
{n+=1;
result[n]=rd;}}
printf ("Результат\n");
for(j=n;j>=0;j--)
printf("%d",result[j]);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2012, 18:34     факториал с точностью до единицы
Посмотрите здесь:

Дано натуральное число n. Отбросить в нем все цифры, стоящие правее самой правой единицы либо оставить число без изменений, если единицы в нем нет C++
C++ Определяет единицы массы в кг
C++ Распознать нули и единицы
C++ Единицы
C++ Единицы
Единицы массы C++
Округление float до единицы C++
C++ Заполнить массив единицами и минус единицами и поменять единицы и минус единицы местами

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
12.11.2012, 18:41     факториал с точностью до единицы #2
Цитата Сообщение от RARNAME Посмотреть сообщение
Привет всем! Помогите исправить код,считает правильно все факториалы от 0 до 20,у остальных неверно. Посоветовали ввести ограничение на числа хранимые в result от 0 до 9 включительно,но мне так и не удалось эт правильно сделать.
Проблема факториала в быстром переполнении, но ограничивать резалт нельзя: если сама функция на самом деле больше твоего ограничения, то ошибка будет ещё раньше. Ограничивать надо параметр.
Yandex
Объявления
12.11.2012, 18:41     факториал с точностью до единицы
Ответ Создать тему
Опции темы

Текущее время: 02:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru