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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция, в функции main() или общие переменные для нескольких функций http://www.cyberforum.ru/cpp-beginners/thread684614.html
Делаю мелкую игрушку, в консоли, ради забавы и столкнулся с 1 проблемой: Невозможно, создавать функцию в функции, вынеся эту функцию за пределы main() И скомпилировав, написало, что эта функция ссылается на переменные, которые ВНЕ зоны ЕЁ видимости. Попытавшись, вытащить за пределы main() все переменные, мне написало, что эти переменные, ВООБЩЕ НИКОМУ не принадлдежат! Так вот в чем вопрос:...
C++ Сортировка строк матрицы Задача: отсортировать (переставить) строки матрицы в порядке убывания значений наименьших элементов строк. Вот мой код. Помогите написать функцию Swap которая сортирует строки. #include <iostream> #include <stdlib.h> #include <ctime> using namespace std; const int size = 5; http://www.cyberforum.ru/cpp-beginners/thread684612.html
C++ Вывести некий элемент массива
Почему пишет что переменная V неопределена? И вобше как тогда вывести первый отрицательний елем. массива, и первый положетильний, идущий после первого отрицательного?#include<iostream> #include<conio.h> #include<stdlib.h> #include<locale.h> using namespace std; int main() { setlocale(LC_ALL,"ukrainian"); int n; int* arr;
C++ Программа вычисления местонахождения точки относительно фигуры (лежит ли точка внутри, на контуре или вне фигуры)
Нужно написать программу вычисления местонахождения точки относительно фигуры(лежит ли данная точка внутри неё, на контуре или вне фигуры). В данном случае, это прямоугольник. Главная функция должна вызывать 4 дополнительных:введение параметра контура, введение координат,определение местонахождения и выведение определенного сообщения. Координаты вершин прямоугольника (–a,0), (a,0), (a,a), (–a,a)....
C++ Дано натурально число: верно ли, что данное число начинается на А,а заканчивается на В(вво с клавы А и В) http://www.cyberforum.ru/cpp-beginners/thread684575.html
Дано натурально число: верно ли, что данное число начинается на А,а заканчивается на В(вво с клавы А и В) помогите пожалуйста написать програмку на С++ Добавлено через 19 часов 18 минут вводишь исходное число, потом вводишь А и В, и проверяешь условие, число не должно быть однозначным. если оно однозначное - выводишь сообщение об ошибке, если нет, то делаешь условие: берешь первую цифру...
C++ Не производиться ввод при помощи функции gets(s) По непонятной мне причине не производиться ввод при помощи функции gets(s) или getline(cin, s). Если использовать просто cin, то проблем нет: //Рекурсия. Вычисление факториала. Функция, возвращающая // наибольший общий делитель. Функция возращающая строку в обратном // порядке. #include <iostream> #include <cstdlib> #include <cstdio> using namespace std; подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт CЭксперт С++
13056 / 7319 / 816
Регистрация: 27.09.2012
Сообщений: 18,055
Записей в блоге: 3
Завершенные тесты: 1
31.10.2012, 03:39     Нахождение факториала: для заданного N найти последнюю отличную от нуля цифру
Цитата Сообщение от 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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru