Возведение в степень

Discussion in 'WASM.BEGINNERS' started by Mark, Nov 24, 2011.

  1. Mark

    Mark Марк

    Blog Posts:
    0
    Joined:
    Sep 15, 2011
    Messages:
    304
    Я написал код, (С++), возведение числа в степень. Что не так?

    Code (Text):
    1. #include <stdio.h>
    2. #include <iostream>
    3. #include <Windows.h>
    4. #include <stdlib.h>
    5. #include <conio.h>
    6.  
    7.  
    8. using namespace std;
    9.  
    10. int main()
    11. {
    12.     setlocale(LC_CTYPE,"Russian");
    13.  
    14.     float s, m, u;
    15.  
    16.     cout << ("Введите число: ");
    17.     cin >> s;
    18.  
    19.     cout << ("\n" "Введите степень: ");
    20.         cin >> m;
    21.  
    22.     do
    23. {
    24.   u =  s*m;
    25. }
    26.  
    27. while (m);
    28.  
    29.     cout << ("Число, возведенное в степень, равно: ") << u;
    30.  
    31.    _getch();
    32.  
    33.    return 0;
    34. }
     
  2. cppasm

    cppasm New Member

    Blog Posts:
    0
    Joined:
    Jul 18, 2006
    Messages:
    923
    А что тут может быть так?
    5 в третьей степени - это 5*5*5, а у тебя 5*3*3*3*...*3

    Code (Text):
    1. do
    2. {
    3.   u =  s*m;
    4. }
    5. while (m);
    Это вообще бесконечный цикл при m не равном нулю.
    Может стоит прекращать постить всё что в голову взбредёт, а прочитать книжку по основам языка хотя бы?
     
  3. l_inc

    l_inc New Member

    Blog Posts:
    0
    Joined:
    Sep 29, 2005
    Messages:
    2,566
    cppasm
    Нет. У него не 5*3*3*...*3.
    У него
    5*3
    5*3
    ...
    5*3
     
  4. Psionic

    Psionic Member

    Blog Posts:
    0
    Joined:
    Sep 25, 2008
    Messages:
    156
    парень это уже не смешно - math.h тебе зачем написан?
     
  5. Mark

    Mark Марк

    Blog Posts:
    0
    Joined:
    Sep 15, 2011
    Messages:
    304
    Psionic
    l_inc
    cppasm

    Хорошо, хорошо. Тогда приведите пожалуйста пример кода) А не критикуйте)
     
  6. Psionic

    Psionic Member

    Blog Posts:
    0
    Joined:
    Sep 25, 2008
    Messages:
    156
    http://devoid.com.ua/functions-about/c-functions/pow.html ня, токо учти твой подход освоению программирования способствует росту той части мозга ответственной за костыли.
     
  7. Mark

    Mark Марк

    Blog Posts:
    0
    Joined:
    Sep 15, 2011
    Messages:
    304
    Psionic
    Ой, спасибо)
     
  8. Mark

    Mark Марк

    Blog Posts:
    0
    Joined:
    Sep 15, 2011
    Messages:
    304
    Psionic

    Про math.h приведете пример выделения квадратного корня? Если можно)
     
  9. Psionic

    Psionic Member

    Blog Posts:
    0
    Joined:
    Sep 25, 2008
    Messages:
    156
    Code (Text):
    1. float koren=sqrt(4.0);
     
  10. leo

    leo Active Member

    Blog Posts:
    0
    Joined:
    Aug 4, 2004
    Messages:
    2,542
    Location:
    Russia
    Mark
    Нет, ребята, все не так, все не так, ребята! (С)
    Если у тебя степень m не int, а float, то никакие циклы тут не помогут

    Если все же m - целое, то тривиальное решение в лоб выглядит ес-но так
    Code (Text):
    1. float res = 1; //результат
    2. while (m) {
    3.   res*=s;
    4.   m--;
    5. }
    А классический способ использует разложение m по степеням 2 и соотв-но работает в m/Log(m) быстрее
    Code (Text):
    1. float res = 1;
    2. while (m) {
    3.   if (m & 1)  
    4.     res*=s;
    5.   s*=s;
    6.   m=m >> 1;
    7. }
     
  11. Dmitry_Milk

    Dmitry_Milk Member

    Blog Posts:
    0
    Joined:
    Nov 20, 2007
    Messages:
    540
    leo, дробные степени только в старших классах преподают, как и свойства степеней и логарифмы.
     
  12. leo

    leo Active Member

    Blog Posts:
    0
    Joined:
    Aug 4, 2004
    Messages:
    2,542
    Location:
    Russia
    :offtop:
    Dmitry_Milk, а кодинг на С++ в детском саду, с молоком матери впитывают? :)
     
  13. Dmitry_Milk

    Dmitry_Milk Member

    Blog Posts:
    0
    Joined:
    Nov 20, 2007
    Messages:
    540
    Не знаю насчет детского сада, но чел заявляет, что ему лет 12. ИМХО, вполне уже можно осваивать программирование. Правда изучать лучше по книгам, чего тс ленится делать.
     
  14. cppasm

    cppasm New Member

    Blog Posts:
    0
    Joined:
    Jul 18, 2006
    Messages:
    923
    Согласен, ошибся.
    Но цикл у него всё равно бесконечный.
     
  15. Mark

    Mark Марк

    Blog Posts:
    0
    Joined:
    Sep 15, 2011
    Messages:
    304
    cppasm

    Я уже понял)