Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.05.2009, 19:01   #1
immor
 
Регистрация: 14.02.2009
Сообщений: 8
По умолчанию Быстрая степень в с++

Доброго времени суток.
Помогите пожалуйста.
1)Ввести вещественное число А и натуральное к.Вычислить и напечатать А в степени к с выполнением некоторых условий:операцией возведения в степень не пользоваться,к может оказаться настолько большим,что недопустимо выполнять к умножений.
мне не саму программу,а мысль,как сделать,чтобы,например,не 100 раз умножалось,а 50,но числа были одни и те же.
Спасибо всем ответившим.
2)Функция.
Функция f(n) для целых неотрицательных n определена так: f(0)=0; f(1)=1; f(2n)=f(n); f(2n+1)=f(n)+f(n+1);
Для данного N найти и напечатать f(N).
Спасибо всем ответившим.

Последний раз редактировалось immor; 25.05.2009 в 19:05.
immor вне форума
Старый 25.05.2009, 19:24   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

1)
Цитата:
как сделать,чтобы,например,не 100 раз умножалось,а 50
а) делиш степень на к/2 и умножаешь число А к/2 раз потом умножаешь это на само себя и будет ответ (это если к - четное число)
б) если к - нечетное отними 1 потом повтори а) и в конце домножь на А

так же можно число к уменьшать и в 4 раза и в больше

вроде так

Код:
void main()
{
float A;
int k;
int res=1,res1=1;
  
cout<<"A :  ";
cin>>A;
cout<<"k : ";
cin>>k;

if(k%2==0)// если четное
{k/=2;
for(int i=0;i<k;i++)
{
     res*=A;
}
res*=res;
k*=2;
}
else// если нечетное
{
  k--; 
for(int i=0;i<k;i++)
{
     res1*=A;
}
res1=res1*res1*A;
}
}

Последний раз редактировалось counter; 25.05.2009 в 19:47.
counter вне форума
Старый 25.05.2009, 19:32   #3
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

2)
Код:
unsigned f(unsigned n)
{
	while (n % 2 == 0) n /= 2;
	if (n <= 1) return n;
	return f(n / 2) + f(n / 2 + 1);
}
Somebody вне форума
Старый 25.05.2009, 19:37   #4
immor
 
Регистрация: 14.02.2009
Сообщений: 8
По умолчанию

очень признателен,спасибо вам,что вы есть)
immor вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка Serious Общие вопросы Delphi 2 02.11.2010 13:38
быстрая сортировка ГРИГОРИЙ-кореш Помощь студентам 1 16.04.2009 18:13
Быстрая графика (вопрос) notnap Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 02.02.2009 23:49
Быстрая работа с графикой Deight Мультимедиа в Delphi 3 13.01.2009 17:49
Быстрая сортировка списка ManU Паскаль, Turbo Pascal, PascalABC.NET 2 08.12.2008 11:57