Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
yardie
9 / 9 / 2
Регистрация: 14.07.2010
Сообщений: 166
1

n>=a в степени k

30.08.2010, 20:08. Просмотров 1599. Ответов 25
Метки нет (Все метки)

вот решил задачу таким образом:
задача:
Напишите программу, находящую для заданных числел n и k максимальное число a, такое, что ak≤ 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
28
29
30
31
32
33
#include <iostream>
#include <cmath>
using namespace std;
 
void main()
{
double n,k,a,b;
cin >> n;
cin >>k;
 
for ( a=n-1; a; a--)
 
{
for(int i=1; i<k; i++)
 
a*=n;
 
}
 
if (n>=a)
 
{
 
cout << a;
 
break;
 
}
 
cin.get();
cin.get();
 
}
можно ли решить без заголовка <cmath>???
или максимально упростить программу?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2010, 20:08
Ответы с готовыми решениями:

Написать программу, которая делит числа в 5 степени на число в 14 степени и выводит ответ в 5 степени. Найти ошибку
Ребят, такая проблема, задание: Написать программу, которая делит числа в 5...

Написать рекурсивную функцию для расчета степени а в степени х, х - любое число
Здравствуйте. Написать рекурсивную функцию для расчета степени а в степени х,...

Написать программу, вычисляющую X в степени Y и Y в степени X
Написать программу, вычисляющую X в степени Y и Y в степени X. Основная...

3 во 2 степени .
Чет решить не могу затык .. ошибка . #include &lt;iostream&gt; using namespace...

е в степени x
я пытаюсь написать программу для вычисления е в степени x используя формулу...

25
Евгений М.
1053 / 990 / 101
Регистрация: 28.02.2010
Сообщений: 2,881
Завершенные тесты: 2
30.08.2010, 20:11 2
Цитата Сообщение от yardie Посмотреть сообщение
можно ли решить без заголовка <cmath>
Можно. Попробуйте.
0
yardie
9 / 9 / 2
Регистрация: 14.07.2010
Сообщений: 166
30.08.2010, 20:15  [ТС] 3
вот что-то не получаеться, хотябы пните в нужном направлении
0
Евгений М.
1053 / 990 / 101
Регистрация: 28.02.2010
Сообщений: 2,881
Завершенные тесты: 2
30.08.2010, 20:17 4
Ой. Извиняюсь. Я поспешил с выводами.
0
yardie
9 / 9 / 2
Регистрация: 14.07.2010
Сообщений: 166
30.08.2010, 20:20  [ТС] 5
прям не решить??? мне кажеться можно?! я вот только начинаю программировать могу и ошибаться)))
0
Евгений М.
1053 / 990 / 101
Регистрация: 28.02.2010
Сообщений: 2,881
Завершенные тесты: 2
30.08.2010, 20:25 6
Странная задача. Вроде решение http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt[k]{n}
C++
1
a=pow(n, 1/k)
0
yardie
9 / 9 / 2
Регистрация: 14.07.2010
Сообщений: 166
30.08.2010, 20:27  [ТС] 7
ОЙ ИЗВИНИТЕ НЕ ТО КИНУЛ)))))
вот та задача:
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
#include <iostream>
#include <cmath>
using namespace std;
 
void main()
{
double n,a,k;
cin >> n;
cin >>k;
 
for ( a=n-1; a; a--)
 
 
 
if (n>=pow(a,k))
 
{
cout << a;
break;
}
cin.get();
cin.get();
 
}
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
30.08.2010, 21:07 8
k целое? Если да, то несложно написать простенькую функцию, вычисляющую степень и не использовать библиотечную pow. Правда для слишком большого a не прокатит, тут уже надо примешивать длинную арифметику...
0
art_z
1 / 1 / 0
Регистрация: 29.08.2010
Сообщений: 12
30.08.2010, 21:12 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
int pow(int m, int n)
{
if(n<1)
{
    return 1;
}
else
{
    return pow(m,n-1)*m;
}
return 0;
}
Вот рекурсивная функция math.h можешь не юзать.... может я что то не правильно понял тогда сори)

переделать чуток)
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
30.08.2010, 21:15 10
Что-то не понял я вашей функции, да и здесь вполне можно (да и нужно) без рекурсии обойтись.
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
30.08.2010, 21:16 11
art_z, в вашем примере рекурсии нет (;
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
30.08.2010, 21:17 12
neske,
Я бы сказал, что он и степень то не вычисляет, да и вообще не скомпилится в представленном виде)))
0
art_z
1 / 1 / 0
Регистрация: 29.08.2010
Сообщений: 12
30.08.2010, 21:19 13
сори не спалил что скопипастил))) теперь норм..
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
30.08.2010, 21:36 14
art_z,
Мы так и поняли))). Но всё же рекурсия здесь ни к чему, как и, например, при вычислении факториала... Вот без рекурсии.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
double mypow(double a, int k)
{
    int i;
    double b = a;
    
    if (k == 0)
        return 1;
    
    for (i = 1; i < k; i++)
        a *= b;
 
    return a;
}
Добавлено через 6 минут
Можно даже упростить (что-то не работает правка, да и вообще какие-либо элементы интерфейса форума - кнопки тегов, изменения стиля текста и цвета и т.д. не активны, да и кликая по нику он не появляется в окне ввода сообщения, поэтому добавляю новый код, а не редактирую старый):
C
1
2
3
4
5
6
7
8
9
10
double mypow(double a, int k)
{
    int i;
    double b = 1;
    
    for (i = 0; i < k; i++)
        b *= a;
 
    return b;
}
0
luk4196
5 / 5 / 1
Регистрация: 29.11.2009
Сообщений: 42
31.08.2010, 22:50 15
Цитата Сообщение от silent_1991 Посмотреть сообщение
Что-то не понял я вашей функции, да и здесь вполне можно (да и нужно) без рекурсии обойтись.
Вот тебе задача

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Вичисление степени числа
#include "stdafx.h"
#include <math.h>
#include <iostream>
using namespace std;
void main(void) {
setlocale (LC_ALL,"russian");
int k, x, y, otv;
cout << "Введите число: ";
cin >> x;
cout << "Введите значение степени: ";
cin >> y;
otv=x;
for(k=1; k<y; k++) otv*=x;
cout << " x в степени равен: " << otv << endl;
system("pause");
}
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
31.08.2010, 22:51 16
luk4196,
Гляньте мою функцию в предыдущем сообщении - степень вычисляется точно так же.
Только вопрос, какой результат выдаст ваша программа при входных данных x = 5, y = 0?
0
Nameless One
01.09.2010, 12:28
  #17

Не по теме:

Так задачу уже решили что-ли? А то что-то от ТС ничего не слышно...

0
Rajd
44 / 22 / 2
Регистрация: 20.11.2008
Сообщений: 178
01.09.2010, 14:02 18
А теперь вопрос на засыпку. У автора точно не указан тип вводимых чисел, однако в программе стоит тип double, А почему тогда а вычисляется лишь как целое?

исходя из типа double и условия a^k≤ n . Что нужно добавить в программу чтобы её решить?
0
Nameless One
Эксперт С++
5787 / 3436 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
01.09.2010, 14:07 19
Rajd, я думаю, вот этот пост - наиболее верное решение данной задачи для действительных чисел
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
01.09.2010, 19:35 20
Nameless One,
Но поскольку автор просил не использовать математическую библиотеку, придётся писать собственную функцию для вычисления корня...
0
01.09.2010, 19:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2010, 19:35

Число в степени -1
Подскажите, как выразить выражение (a+b) в -1 степени. P.S. 1/(a+b) не катит...

Вычислить А в степени n
Дан массив размером n×n, элементы которого целые числа.Вычислить А^n, где n –...

число в степени
Выведите число 2 в степени N. Нужно решить циклом for. Знаю, это лёгкая задача,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru