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

Используя только операции «*» и «/» вычислить: Аn, минимизировав число операций - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ напишите пожалуйста в cи++ BORLAND дана целочисленная прямо угольная матрица http://www.cyberforum.ru/cpp-beginners/thread379118.html
дана целочисленная прямо угольная матрица 5 строк и 5 столбцов каторую нужно заполнить случайными числами от-5 до 5 Найти номер первой строк содержащих хотябы один положительный элемент
C++ Написать программу которая складывает первую и последнюю цифру числа. Всего цифр с числе может быть до 5 (тип числа int). Собсно как? http://www.cyberforum.ru/cpp-beginners/thread379101.html
Массивы C++
Здравствуйте. Помогите пожалуйста. Как можно найти максимальное значение двумерного массива и местоположение этого значения? Очень прошу помоч.
Узнать перпендикулярны ли прямые C++
Даны две прямые y=a1*x+c1 и y=a2*x+c2. Определить условие перпендикулярности прямых, и если оно не выполняется, найти угол между ними.
C++ Контрол для просмотра данных в HEX http://www.cyberforum.ru/cpp-beginners/thread379076.html
Кто-нибудь видел простой контрол для Borland C++ Builder, в котором можно просмотреть данные (файл, поток) в hex-виде? И иметь возможность подсветить диапазон. Типа такого: 000000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 000010 FF FF FF FF FF FF FF EE DD EE EE FF FF DD EE AA 000020 ...
C++ ряд Тэйлора sin(x)/x в с++ Условие: Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от xнач. до xкон. с шагом dx и с точностью e. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. Подскажите пожалуйста в чем я ошибся, не считает и все( по ходу это здесь, while(fabs(realF-f)>e) но как... подробнее

Показать сообщение отдельно
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
07.11.2011, 16:01     Используя только операции «*» и «/» вычислить: Аn, минимизировав число операций
Можно так попробовать.
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 <math.h>
 
float Pow(float num, int degree)
{
    if(degree == 0)
        return 1;
    if(degree == 1)
        return num;
    return Pow((num * num), (degree / 2)) * ((degree % 2 == 0) ? (1) : (num));
}
 
int main(void)
{
    int num;
    int i;
    float P, p;
    scanf("%d", &num);
    printf("\tmy pow\t pow from math.h\toctal\thex\n") ;
    for(i = 0; i < num; ++i)
    {
        P = Pow((float)num, i);
        p = pow((float)num, i);
        printf("%d^%d = %6.1f\t\t%6.1lf\t\t%o\t%x\n", num, i, P, p, (int)p, (int)p);
    }
    return 0;
}
Код
soon@coming:~/src$ ./main
5
        my pow   pow from math.h        octal   hex
5^0 =    1.0               1.0          1       1
5^1 =    5.0               5.0          5       5
5^2 =   25.0              25.0          31      19
5^3 =  125.0             125.0          175     7d
5^4 =  625.0             625.0          1161    271
Код
5 ^ 5 = 5 * 5 * 5 * 5 * 5 - 4 operations
Pow(5, 5) = Pow(5 * 5, 2) * 5 = 25 * 25 * 5 - 3 operations
При больших числах будут косяки с красивым выводом в консоль
 
Текущее время: 15:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru