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

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

Восстановить пароль Регистрация
 
svinopapa
 Аватар для svinopapa
10 / 10 / 3
Регистрация: 05.01.2011
Сообщений: 39
07.11.2011, 14:05     Используя только операции «*» и «/» вычислить: Аn, минимизировав число операций #1
Дано натуральное число А (ввод числа осуществляется в десятичной
системе).. Используя только операции «*» и «/» вычислить: Аn,
минимизировав число операций. Результат вывести на экран в восьмеричной и
шестнадцатеричной системе. Число n указывает преподаватель.

Помогите пожалуйста Пишем на Pelles C.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2011, 14:05     Используя только операции «*» и «/» вычислить: Аn, минимизировав число операций
Посмотрите здесь:

C++ Не используя никаких операций, кроме умножения и присваивания, составить программу, вычисляющую a7 за 4 операции умножения
C++ Цикл: Используя только операции умножения и деления вычислить: A^n (A в степени n) , минимизировав число операций
Данное натуральное число N. Используя только элементарные арифметические операции (+, -, *, /) C++
C++ Используя только элементарные арифметические операции, определить сумму и произведение членов последовательности, которые кратны К
Задание вычислить за минимальное число операций C++
Вычислить за минимальное число операций C++
C++ Дано вещественное число n.Пользуясь только операцией умножения получить а в 27 степени за шесть операций
C++ Возвести число в 10 степень, используя только четыре операции умножения

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
07.11.2011, 16:01     Используя только операции «*» и «/» вычислить: Аn, минимизировав число операций #2
Можно так попробовать.
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
При больших числах будут косяки с красивым выводом в консоль
Yandex
Объявления
07.11.2011, 16:01     Используя только операции «*» и «/» вычислить: Аn, минимизировав число операций
Ответ Создать тему
Опции темы

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