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

Возвести число в 10 степень, используя только четыре операции умножения - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.86
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
11.06.2014, 19:54     Возвести число в 10 степень, используя только четыре операции умножения #1
Подскажите что не так?При проверке на сайте пишет частичное решение.
Задача:
Напишите программу, которая возводит введенное число в степень 10, используя только четыре операции умножения.
Входные данные
Входная строка содержит единственное вещественное число в диапазоне от 0 до 8.
Выходные данные
Нужно вывести 10-ю степень полученного числа с тремя знаками в дробной части.
Код
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main ()
{
    float a,b,c,d;
    cin>>a;
    b=a*a;
    c=b*b;
    d=c*c;
    a=d*b;
    cout<< a;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2014, 19:54     Возвести число в 10 степень, используя только четыре операции умножения
Посмотрите здесь:

C++ Как возвести дробное число в целую степень? К примеру 2,7 возвести в степень 2 на C++.
C++ Не используя никаких операций, кроме умножения и присваивания, составить программу, вычисляющую a7 за 4 операции умножения
C++ Цикл: Используя только операции умножения и деления вычислить: A^n (A в степени n) , минимизировав число операций
Используя только операции «*» и «/» вычислить: Аn, минимизировав число операций C++
Данное натуральное число N. Используя только элементарные арифметические операции (+, -, *, /) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
11.06.2014, 19:57     Возвести число в 10 степень, используя только четыре операции умножения #2
Может так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <iomanip>
using namespace std;
 
int main ()
{
    double a,b,c,d;
    cin>>a;
    b=a*a;
    c=b*b;
    d=c*c;
    a=d*b;
    cout <<fixed <<setprecision(3) <<a;
    return 0;
}
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
11.06.2014, 20:10  [ТС]     Возвести число в 10 степень, используя только четыре операции умножения #3
Спасибо большое помогло.

Добавлено через 4 минуты
Цитата Сообщение от MicM Посмотреть сообщение
fixed <<setprecision(3)
если используется так то выводится 3 знака после запятой, е если
Цитата Сообщение от MicM Посмотреть сообщение
setprecision(3) <<a;
то всего 3 знака.Я правильно понял?
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
11.06.2014, 20:38     Возвести число в 10 степень, используя только четыре операции умножения #4
Манипулятор fixed говорит о том, что надо использовать вывод чисел с фиксированной точкой
setprecision() устанавливает число знаков после запятой
Обычно они вместе используются
http://www.cplusplus.com/reference/ios/fixed/
http://www.cplusplus.com/reference/i.../setprecision/
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
11.06.2014, 21:28  [ТС]     Возвести число в 10 степень, используя только четыре операции умножения #5
Если не сложно подскажите еще.
Напишите программу, которая вводит два целых числа, a и b ( a < b ), и выводит через пробел 5 случайных целых чисел на отрезке [ a , b ] .
Входные данные
Входная строка содержит два целых числа a и b , разделённых пробелом. Гарантируется, что a < b .
Выходные данные
Нужно вывести в одной строке через пробел 5 случайных целых чисел на отрезке [ a , b ] .
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main ()
{
    int a,b,random_number;
    cin>>a>>b;
     srand(time(NULL));
     for (int i = 0; i < 5; i++) {
    random_number=a+rand() %b; 
    cout<<random_number<<" ";
     }
    return 0;
}
снова частичное решение...

Добавлено через 36 минут
Должно как то решатся без цикла.
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
11.06.2014, 22:28     Возвести число в 10 степень, используя только четыре операции умножения #6
Цитата Сообщение от ZarinZomanu4 Посмотреть сообщение
C++
1
random_number=a+rand() %b;
Чисел не b, а b - a + 1.
К тому же в условии ничего не сказано про методы генерации случайных чисел. Думаю, можно использовать собственный генератор с нулевой энтропией:
C++
1
random_number = a;
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
11.06.2014, 22:44  [ТС]     Возвести число в 10 степень, используя только четыре операции умножения #7
а в случае с вещественными числами так правильно будет?
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main ()
{
    float a,b,random_number;
    cin>>a>>b;
     srand(time(NULL));
     for (int i = 0; i < 5; i++) {
    random_number=a+rand() % int ( b-a); 
    cout<<random_number<<" ";
     }
    return 0;
}
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
11.06.2014, 23:10     Возвести число в 10 степень, используя только четыре операции умножения #8
Цитата Сообщение от ZarinZomanu4 Посмотреть сообщение
а в случае с вещественными числами так правильно будет?
Верхняя граница диапазона будет меньше b. Как решение варианта этой задачи, где ничего не написано про методы генерации случайных чисел, - думаю, пойдёт, а для практического применения - нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2014, 23:26     Возвести число в 10 степень, используя только четыре операции умножения
Еще ссылки по теме:

Написать функцию умножения двух,заданных с клавиатуры чисел, используя только операцию умножения и рекурсию C++
Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность C++
Рекурсивная функция. Возвести число в степень путём многократного умножения самого на себя C++

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

Или воспользуйтесь поиском по форуму:
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
11.06.2014, 23:26  [ТС]     Возвести число в 10 степень, используя только четыре операции умножения #9
Цитата Сообщение от Somebody Посмотреть сообщение
а для практического применения - нет.
а как правильно сделать для практического применения?
random_number=a+rand() % int ( b+1); ??
Yandex
Объявления
11.06.2014, 23:26     Возвести число в 10 степень, используя только четыре операции умножения
Ответ Создать тему
Опции темы

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