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

Нахождение факториала: для заданного N найти последнюю отличную от нуля цифру - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция, в функции main() или общие переменные для нескольких функций http://www.cyberforum.ru/cpp-beginners/thread684614.html
Делаю мелкую игрушку, в консоли, ради забавы и столкнулся с 1 проблемой: Невозможно, создавать функцию в функции, вынеся эту функцию за пределы main() И скомпилировав, написало, что эта функция...
C++ Сортировка строк матрицы Задача: отсортировать (переставить) строки матрицы в порядке убывания значений наименьших элементов строк. Вот мой код. Помогите написать функцию Swap которая сортирует строки. #include... http://www.cyberforum.ru/cpp-beginners/thread684612.html
C++ Вывести некий элемент массива
Почему пишет что переменная V неопределена? И вобше как тогда вывести первый отрицательний елем. массива, и первый положетильний, идущий после первого отрицательного?#include<iostream>...
C++ Программа вычисления местонахождения точки относительно фигуры (лежит ли точка внутри, на контуре или вне фигуры)
Нужно написать программу вычисления местонахождения точки относительно фигуры(лежит ли данная точка внутри неё, на контуре или вне фигуры). В данном случае, это прямоугольник. Главная функция должна...
C++ Дано натурально число: верно ли, что данное число начинается на А,а заканчивается на В(вво с клавы А и В) http://www.cyberforum.ru/cpp-beginners/thread684575.html
Дано натурально число: верно ли, что данное число начинается на А,а заканчивается на В(вво с клавы А и В) помогите пожалуйста написать програмку на С++ Добавлено через 19 часов 18 минут вводишь...
C++ Не производиться ввод при помощи функции gets(s) По непонятной мне причине не производиться ввод при помощи функции gets(s) или getline(cin, s). Если использовать просто cin, то проблем нет: //Рекурсия. Вычисление факториала. Функция, возвращающая... подробнее

Показать сообщение отдельно
Croessmah
Эксперт CЭксперт С++
13416 / 7570 / 855
Регистрация: 27.09.2012
Сообщений: 18,632
Записей в блоге: 3
Завершенные тесты: 1
31.10.2012, 03:39
Цитата Сообщение от RESTY Посмотреть сообщение
Croessmah, вы издеваетесь?)
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
#include <iostream>
#include <math.h>
#include <time.h>
using namespace std;
 
 int Izdevatelstvo(const int a){
     double x=a;
    x += x + 1;
    if( x > 1) {
        x = (1.8378770664093455 + log(x / 2.0) * x - x
            - (1.0 - 7.0 / (30.0 * x * x )) / ( 6.0 * x)) / 2.0 ;
        x = x * 0.43429448190325176; 
        return static_cast<int>(x = pow((double)10, x)); 
    }
 }
 
void main()
{
    clock_t start;
    clock_t end;
    setlocale(LC_ALL, "");
     start = clock();
    for(int i=0;i<10000000;i++){
         Izdevatelstvo(30);
     }
      end = clock();
    cout<<"Функция Izdevatelstvo: "<<(double)(end - start)/CLOCKS_PER_SEC<<" сек.\n";
     cout<<Izdevatelstvo(100)<<"\n";
     system("pause");
}
У меня выполняется менее чем за секунду, для больших чисел, естественно происходит переполнение.
Что касается тысячи значений, то уловить с помощью clock'а не удается. Так как внутри нет циклов и рекурсии, то код не будет тормозить при увеличении числа, подаваемого в функцию

Добавлено через 7 минут
Правда вычисляет приближенно, погрешнисть при x=12 равна 1
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru