2014-12-09 5 views
0

나는 C++ language을 배우고 있지만, 작은 것에 대해서는 많이 혼동하고 있습니다. 그 숫자는 아래에있는 입니다. 저는 정수의 제곱을 만드는 몇 가지 코드를 작성했습니다. 그러나 raiseToPow 함수에서 x의 치료를 이해하지 못합니다. 여기 double x은 함수를 호출하고 for 루프에 x으로 전달하는 값을 취하는 인수입니다. 그렇다면 어떻게 그 정수의 제곱을 x에서 건네 줍니까? 나를 안내 해줘.어떤 인수가 전달 되었습니까?

#include <iostream> 
using namespace std; 

double raiseToPow(double x, int power){ 
    double result; 
    result = 1.0; 
    for (int i = 1; i <= power; i++) 
    { 
     result *= x; 
    } 
     return (result); 
    } 
main() 
    { 
    double x; 
    int i; 
    cout << "Enter the Number: "; 
    cin >> x; 
    cout << "Enter the Power: "; 
    cin >> i; 
    cout << x << "Raise to power " << i << " is equal to " << raiseToPow(x , i); 

    } 
+0

실제로 누계가 무엇인지 이해하십니까? –

+0

예, 저는 Ignacio Vazquez-Abrams를 압니다. 그러나 나는 그 인수가 지나가는 가치에 대해 실제로 혼란 스럽습니다. 나는 그것이 통과하고 있으며 누가 왜 이것을하고 있는지 확신하지 못합니다 .. ( – Baaz

+0

@Grzegorz Szpetkowski 그것은 무엇이든간에 ..하지만 나는 단지 해결책에 대해 물어보고 약간의 기본적인 프로그래밍 기술을 이해하는데 도움이됩니다. 이 문제에서 연구 과제를 완료하기 위해서 – Baaz

답변

0

double x는 지수 X 전력의베이스이다.

이 함수는 정의 x power을 x 배로 곱한 값을 사용합니다. 따라서 2 은 1 * 2 * 2 * 2이고 4 은 1 * 4 * 4 * 4 * 4 * 4입니다. 따라서 double result이 1로 설정된 경우 for 루프는 resultx을 곱하여 result에 다시 저장할 때마다 전원 시간을 실행합니다.

0

C가 아닌 C++이지만 논리는 동일합니다. 숫자 (x)와 지수 (지수)를 전달합니다. x의 값에 'power'시간이 곱해진다. 당신이 3 승 2의 가치를 알고 싶다면 예를 들어,이 기능 raiseToPow

result*=x 

2, 3을 통과 할 것은

과 동일
result = x*result. 

그래서 루프를 처음 실행할 때 결과는 x (이 예에서는 2)의 값이됩니다. 루프를 두 번 째로 통과하면 result * = x는 result에 저장된 값 x의 값에 2를 곱합니다 (현재는 2입니다). 루프를 통과하는 세 번째이자 마지막 시간 인 result * = x는 x에 결과에 저장된 값 (현재는 4)을 곱합니다.

값은 2^3 = 8이며, 이는 결과 변수에 저장된 값이므로 값 8은 raiseToPow (2,3) 호출에서 반환됩니다.

관련 문제