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

задача(( - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Ri
 Аватар для Ri
48 / 11 / 1
Регистрация: 15.09.2011
Сообщений: 86
15.09.2011, 12:51     задача(( #1
помогите пожалуйста((хотя бы просто объсните как это сделать с помощью 2х переменных,что они должны представлять собой:
Дано число A. Вычислить A15, используя две вспомогательные переменные и пять операций умножения. Для этого последовательно находить A2, A3, A5, A10, A15. Вывести все найденные степени числа A.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.09.2011, 13:00     задача(( #2
Рассматриваете степени
A, A^2, A^4, A^8,
где каждая текущая степень это это квадрат предыдущей. Осталось их перемножить и все
Ri
 Аватар для Ri
48 / 11 / 1
Регистрация: 15.09.2011
Сообщений: 86
15.09.2011, 13:01  [ТС]     задача(( #3
спасибо,попробую)
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
15.09.2011, 13:08     задача(( #4
Цитата Сообщение от Thinker Посмотреть сообщение
A, A^2, A^4, A^8,
Всего 2 переменных и 5 умножений.
Вариант:
C++
1
2
3
4
int A=9;
int B=A*A;
int C=B*B*A; // уже 3 умножения, осталось 2
int RES=C*C*C; // вот и еще 2
Цитата Сообщение от Ri Посмотреть сообщение
Для этого последовательно находить A2, A3, A5, A10, A15.
А вот как с этим быть я не понял =) Потому как 2 промежуточных переменных точно не хватит для всех этих значений. Какое-то условие ошибочно имхо
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.09.2011, 13:10     задача(( #5
mimicria, а это что:

double rez, p;
rez = p = A*A;
p *= p;
rez *= p;
p *= p;
rez *= p;
rez *= A;
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
15.09.2011, 13:11     задача(( #6
Цитата Сообщение от Thinker Посмотреть сообщение
mimicria, а это что:
6 умножений
Ri
 Аватар для Ri
48 / 11 / 1
Регистрация: 15.09.2011
Сообщений: 86
15.09.2011, 13:12  [ТС]     задача(( #7
такое условие(сама не знаю...и возведение в степень не использовать((все мои попытки были пресечены преподавателем
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
15.09.2011, 13:20     задача(( #8
2 вариант с этими степенями и 5 умножений
C++
1
2
3
4
5
6
int A=9;
int B=A*A; // b - 2 степень
int C=B*A; // c - 3 степень
C*=B; // c - 5 степень
B=C*C; // b - 10 степень
int RES=B*C; // 15 степень
-=ЮрА=-
Заблокирован
Автор FAQ
15.09.2011, 13:26     задача(( #9
Цитата Сообщение от Ri Посмотреть сообщение
Дано число A. Вычислить A15, используя две вспомогательные переменные и пять операций умножения. Для этого последовательно находить A2, A3, A5, A10, A15. Вывести все найденные степени числа A.
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
31
32
33
34
35
36
37
//Дано число A. Вычислить A15, используя две вспомогательные переменные 
//и пять операций умножения. Для этого последовательно находить 
//A2, A3, A5, A10, A15. Вывести все найденные степени числа A.
 
#include <iostream.h>
#include <conio.h>
 
//Руссификация
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='ё')
            stream<<char(241);
        else if(*ps=='Ё')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
 
int main()
{
    long A;
    long buf1,buf2;
    cout<<"Введите A: ";
    cin>>A;
    cout<<"A2 : "<<(buf1 = A*A)   <<"\r\n";   //1 - * A2
    cout<<"A3 : "<<(buf2 = buf1*A)<<"\r\n";   //2 - * A3
    cout<<"A5 : "<<(buf2 = buf2*buf1)<<"\r\n";//3 - * A5
    cout<<"A10: "<<(buf1 = buf2*buf2)<<"\r\n";//4 - * A10
    cout<<"A15: "<<buf1*buf2<<"\r\n";       //5 - * A15
    return 0;
}
Результат

Введите A: 5
A2 : 25
A3 : 125
A5 : 3125
A10: 9765625
A15: 452807053
Press any key to continue
Ri
 Аватар для Ri
48 / 11 / 1
Регистрация: 15.09.2011
Сообщений: 86
15.09.2011, 13:38  [ТС]     задача(( #10
а если так?правильно?:
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
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
void main()
{
double A,B,C,RES;
clrscr();
cout<<”\n Введите A ”;
cin>>A;
B=A*A; 
Cout<<”\n A2=;
Cout<<B;
C=B*A; 
Cout<<”\n A3=;
Cout<<C;
C*=B; 
Cout<<”\n A5=;
Cout<<C;
B=C*C; 
Cout<<”\n A10=;
Cout<<B;
RES=B*C; 
Cout<<”\n A15=;
Cout<<RES;
Getch();
Return;
}
и не является ли RES третьей переменной?

 Комментарий модератора 
Используйте теги форматирования кода!
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
15.09.2011, 13:53     задача(( #11
Цитата Сообщение от Ri Посмотреть сообщение
и не является ли RES третьей переменной?
А чтобы не придрались сделайте так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
void main()
{
double A,B,C;
clrscr();
cout<<”\n Введите A ”;
cin>>A;
B=A*A;
cout<<”\n A2=<<B;
C=B*A;
cout<<”\n A3=<<C;
C*=B;
cout<<”\n A5=<<C;
B=C*C;
cout<<”\n A10=<<B;
cout<<”\n A15=<<B*C;
getch();
return;
}
-=ЮрА=-
Заблокирован
Автор FAQ
15.09.2011, 14:03     задача(( #12
Цитата Сообщение от Ri Посмотреть сообщение
double A,B,C,RES;
- 4-ри переменных, а в твоём условии
Цитата Сообщение от Ri Посмотреть сообщение
используя две вспомогательные переменные и пять операций умножения
. что тебе в моём варианте не подошло, отлично ведь считает???

Добавлено через 7 минут
Ri, вот тебе простой вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream.h>
 
int main()
{
    long A;
    long buf1,buf2;
    cout<<"Enter A: ";
    cin>>A;
    buf1 = A*A;                         //1 - * A2
    cout<<"A2 : "<<buf1<<"\r\n";   
    buf2 = buf1*A;                      //2 - * A3
    cout<<"A3 : "<<buf2<<"\r\n";
    buf2 = buf2*buf1;                   //3 - * A5
    cout<<"A5 : "<<buf2<<"\r\n";
    buf1 = buf2*buf2;                   //4 - * A10
    cout<<"A10: "<<buf1<<"\r\n";
    cout<<"A15: "<<buf1*buf2<<"\r\n";   //5 - * A15
    return 0;
}
Enter A: 5
A2 : 25
A3 : 125
A5 : 3125
A10: 9765625
A15: 452807053
Press any key to continue
Ri
 Аватар для Ri
48 / 11 / 1
Регистрация: 15.09.2011
Сообщений: 86
15.09.2011, 14:09  [ТС]     задача(( #13
ну да..с этой RES получилось 3,ведь А не вспомогательная)а насчет первоначального варианта вашего-я не спорю всё замечательно...НО на занятиях мы пользуемся таким видом программ как отправила я)работаем в Borland'е)

Добавлено через 4 минуты
в общем всем большое спасибо)кажется подошел вариант

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
void main()
{
double A,B,C;
clrscr();
cout<<”\n Введите A ”;
cin>>A;
B=A*A;
cout<<”\n A2=<<B;
C=B*A;
cout<<”\n A3=<<C;
C*=B;
cout<<”\n A5=<<C;
B=C*C;
cout<<”\n A10=<<B;
cout<<”\n A15=<<B*C;
getch();
return;
}
-=ЮрА=-
Заблокирован
Автор FAQ
15.09.2011, 14:37     задача(( #14
Цитата Сообщение от Ri Посмотреть сообщение
я)работаем в Borland'е)
- опять вариант mimicria
Ri, этот код
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
#include <iostream.h>
int main()
{
* * * * long A;
* * * * long buf1,buf2;
* * * * cout<<"Enter A: ";
* * * * cin>>A;
* * * * buf1 = A*A; * * * * * * * * * * * * * * * * * * * * * * * * * * //1 - * A2
* * * * cout<<"A2 : "<<buf1<<"\r\n"; *
* * * * buf2 = buf1*A;* * * * * * * * * * * * * * * * * * * * * //2 - * A3
* * * * cout<<"A3 : "<<buf2<<"\r\n";
* * * * buf2 = buf2*buf1; * * * * * * * * * * * * * * * * * * * //3 - * A5
* * * * cout<<"A5 : "<<buf2<<"\r\n";
* * * * buf1 = buf2*buf2; * * * * * * * * * * * * * * * * * * * //4 - * A10
* * * * cout<<"A10: "<<buf1<<"\r\n";
* * * * cout<<"A15: "<<buf1*buf2<<"\r\n"; * * * //5 - * A15
* * * * return 0;
}
идёт в БОРЛАНДЕ, вот скрин

Ri, скомпилируй код - всё работает, что ещё надобно то
Миниатюры
задача((  
Ri
 Аватар для Ri
48 / 11 / 1
Регистрация: 15.09.2011
Сообщений: 86
15.09.2011, 14:46  [ТС]     задача(( #15
спасибо)
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.09.2011, 14:54     задача(( #16
Цитата Сообщение от mimicria Посмотреть сообщение
6 умножений
Вот ведь моя невнимательность, спасибо
Yandex
Объявления
15.09.2011, 14:54     задача((
Ответ Создать тему
Опции темы

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