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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.78
azhankuaku
0 / 0 / 0
Регистрация: 18.06.2011
Сообщений: 9
#1

Дано целое число m. получить найбольщее целое k при котором 4^k<m - C++

20.06.2011, 08:47. Просмотров 2469. Ответов 24
Метки нет (Все метки)

дано целое число m. получить найбольщее целое k при котором 46^k<m

Добавлено через 1 минуту
извините есть ошибка вот правильная форма


дано целое число m. получить найбольщее целое k при котором 4^k<m
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2011, 08:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дано целое число m. получить найбольщее целое k при котором 4^k<m (C++):

Получить наибольшее целое число, при котором выполняется условие - C++
Здравствуйте, уважаемые товарищи! Написать нужно консольную программу. Задание: Дано целое число m&gt;1. Получить наибольшее целое n,...

Дано целое число (N>0) найти наибольшее целое числа k, квадрат которого не превосходит N:k^2<=N - C++
Помогите пожалуйста сделать задачу. Нужно сделать на С++. Вот условие: Дано целое число (N&gt;0) найти наибольшее целое числа k, квадрат...

Дано целое число N (> 0). Найти сумму N2 + (N + 1)2+ (N + 2)2+ … + (2*N)2 (целое число) - C++
Дано целое число N (&gt; 0). Найти сумму N2 + (N + 1)2+ (N + 2)2+ … + (2*N)2 (целое число).подскажите как решается или подскажите где можно...

Получить наибольшее целое k, при котором 4k < m - C++
пожалуйста напишите задачи Дано целое число m &gt; 1. Получить наибольшее целое k, при котором 4k &lt; m.

Получить наибольшее целое k при котором 4^k<m - C++
Помогите написать код программы.(новичок) Дано целое число m &gt; 1. Получить наибольшее целое k при котором 4^k&lt;m.

Получить наибольшее целое k, при котором 4^k < m - C++
Дано целое число m &gt; 1. Получить наибольшее целое k, при котором 4^k &lt; m.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
20.06.2011, 10:51 #16
ну хорошо. какой ответ даёт твоя функция (первая, если в ней исправить ошибки, разумеется) при m=262144?
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.06.2011, 10:54 #17
8, наверное.
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
20.06.2011, 10:55 #18
На моей машине твоя функция выдала 9. Объяснять надо, почему? Хотя проверь, возможно на твоей будет всё-таки 8.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.06.2011, 11:05 #19
Это ошибка округления больших чисел, а не малых, но получается, что через дабл нельзя.
А функцию degree как проверить?

Добавлено через 1 минуту
Одна ошибка, кстати, есть. В заголовке цикла.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int degree(int a, int n)
{
 int result, i,b;
 for (result=0, b=a, i=0; i<sizeof(n)*8; ++i)
 {
  if (n&b)
  {
   result+=b;
  }
 }
 return result;
}
int k(int m)
{
 int result;
 for (result=1, b=4; degree(4,result)<m; ++result); 
 return result-1;
}
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
20.06.2011, 11:06 #20
Ну я свою версию выложил. Я в ней уверен.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.06.2011, 11:07 #21
Цитата Сообщение от grizlik78 Посмотреть сообщение
Это которая через degree? Что-то она жутковато выглядит
Ну так потому так и выглядит, что я пытался обойтись только циклами.
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
20.06.2011, 11:10 #22
Моя тоже жутко выглядит? Мне просто интересно, как оно со стороны
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.06.2011, 11:12 #23
Я её вообще прочитать не смог.
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
20.06.2011, 11:18 #24
Цитата Сообщение от taras atavin Посмотреть сообщение
Я её вообще прочитать не смог.
Хм. Странно.
C
1
2
3
4
5
6
7
8
9
unsigned max_pow_4(unsigned m)
{
    unsigned k = 0; // начальная степень
    unsigned deg = 1; // 4**0
    while ( (deg <<= 2) < m && deg) // умножаем на 4 до тех пор, пока 4**(k+1) < m
                                    // и пока не произошло переполнение
        ++k; // увеличиваем показатель степени
    return k;
}
Ну, может и можно было расписать немного более громоздко, но здесь вполне в стиле Си.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.06.2011, 11:32 #25
Что то у меня сегодня фигня полная. x<<2 это же вообще не степень, а произведение.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int degree(int a, int n)
{
 int result, i;
 for (result=1, i=0; i<=n; ++i)
 {
  result*=a;
 }
 return resutl;
}
int k(int m)
{
 int result;
 for (result=0; degree(4, result)<m; ++result);
 return result-1;
}
Не знаю, как можно оптимизировать degree.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2011, 11:32
Привет! Вот еще темы с ответами:

Дано целое число N. Получить число M, у которого порядок цифр обратный по отношению к N - C++
Написать программу в с++: Дано целое число N. Получить число M, у которого порядок цифр обратный по отношению к N.

Дано целое число n. Получить все простые делители этого числа - C++
Почему простые делители выдает не правильно? ch-число del-делитель dd-делитель делителя #include &quot;stdafx.h&quot; #include...

Циклы с предусловием и с постусловием: получить наибольшее целое k, при котором 4k<N - C++
Дано натуральное число N. Получить наибольшее целое k, при котором 4k&lt;N. Функцию для возведения в степень не использовать

Найти наименьшее целое число K, при котором выполняется неравенство 3K > N - C++
1.Если дано трехзначное число, например 123 его можно представить в виде 3+2*10+1*10*10. Воспользовавшись этой информацией, создайте...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.06.2011, 11:32
Ответ Создать тему
Опции темы

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