2009-05-10 14 views
66

मैं शक्ति के लिए संख्या कैसे बढ़ा सकता हूं?शक्ति को संख्या बढ़ाने के लिए सी ++ फ़ंक्शन क्या है?

2^1 

2^2 

2^3 

आदि ...

+0

शीर्षक भ्रामक था का ख्याल रखता है का उपयोग करने के। यह सामान्य रूप से शक्तियों के बारे में है, सिर्फ वर्ग नहीं। मैंने इसे संपादित किया और इसे ठीक किया। – Zifre

+20

यदि यह सामान्य रूप से 2 की शक्तियों के बारे में है, तो << का उपयोग करें। –

+1

हां, यह * पूर्णांक * के लिए काम करेगा। । । – imallett

उत्तर

93

पॉव() cmath पुस्तकालय में। अधिक जानकारी here। शीर्ष पर # शामिल करने के लिए मत भूलना।

+4

नरक, हाँ .. यह वास्तव में इतना आसान है .. –

13

पॉव (एक्स, वाई) समारोह का उपयोग करें: See Here

बस math.h शामिल हैं और आप बिल्कुल तैयार हैं।

3

यह पॉव या <math.h>

में powf वहाँ दृश्य मूल या अजगर की तरह कोई विशेष इन्फ़िक्स ऑपरेटर

+1

powf() एक सी 99 फ़ंक्शन है जो सी ++ में नहीं है। – newacct

3
pow(2.0,1.0) 
pow(2.0,2.0) 
pow(2.0,3.0) 

आपका मूल प्रश्न शीर्षक भ्रामक है है। केवल वर्ग पर, 2*2 का उपयोग करें।

10

गणित में सामान्य सी विधियों का उपयोग करने में सक्षम होना चाहिए।

#include <cmath>

pow(2,3)

यदि आप एक यूनिक्स की तरह सिस्टम पर कर रहे हैं, man cmath

है कि तुम क्या पूछ रहे हैं है?

Sujal

9

जबकि pow(base, exp) एक महान सुझाव है, ध्यान रखें कि यह आम तौर पर फ्लोटिंग प्वाइंट में काम करता है हो सकता है।

यह हो सकता है कि आप जो भी चाहते हों: हो सकता है कि कुछ सिस्टम पर एक संचयक पर गुणा करने वाला एक साधारण लूप पूर्णांक प्रकारों के लिए तेज़ होगा।

और विशेष रूप से वर्ग के लिए, आप संख्याओं को अपने आप को, फ्लोटिंग-पॉइंट या पूर्णांक के साथ गुणा कर सकते हैं; यह वास्तव में पठनीयता (आईएमएचओ) में कमी नहीं है और आप फ़ंक्शन कॉल के प्रदर्शन ओवरहेड से बचते हैं। अब तुम सिर्फ

pow(2, N) 
एन किसी पूर्णांक होने के साथ

ऐसा नहीं कर सकते, क्योंकि यह नाव की जो पता नहीं है

pow(float, float); 
pow(float, int); 
pow(double, double); // taken over from C 
pow(double, int); 
pow(long double, long double); 
pow(long double, int); 

,:

+0

और हाँ, यह "समयपूर्व अनुकूलन" श्रेणी में पड़ सकता है, लेकिन मुझे हमेशा इस तरह की चीजों से अवगत होना अच्छा लगता है - खासकर यदि आपको सीमित संसाधन वातावरण में प्रोग्राम करना है। – leander

62

<cmath> शीर्षक में std::pow इन भार के है इसे डबल या लम्बा डबल संस्करण लेना चाहिए, और आपको अस्पष्टता त्रुटि मिल जाएगी। इन तीनों को int से फ़्लोटिंग पॉइंट में रूपांतरण की आवश्यकता होगी, और सभी तीन समान रूप से महंगा हैं!

इसके लिए, पहले तर्क टाइप करना सुनिश्चित करें ताकि यह उन तीनों में से एक से मेल खा सके। मैं आमतौर पर double

pow(2.0, N) 

कुछ वकील मुझसे फिर से बकवास करते हैं। मैं अक्सर इस गड़बड़ी में खुद गिर गया है, इसलिए मैं आपको इसके बारे में चेतावनी देने जा रहा हूं।

+0

'int एन; पाउ (2.0, एन) 'अभी भी संदिग्ध होगा: ' पाउ (डबल, int) ' या' पाउ (डबल, डबल) 'हो सकता है: -/→ कास्ट – Marvin

+0

@marvin मैं अपना उत्तर पढ़ने की सलाह देता हूं एक टिप्पणी जोड़ने से पहले। मैंने समझाया कि यह अस्पष्टता नहीं देता है। –

+3

मैं टिप्पणी जोड़ने से पहले मेरी टिप्पणी पढ़ने की सलाह देता हूं। ;-) मैंने समझाया कि यह एक अस्पष्टता देता है। (वीएस -2008 का कंपाइलर) – Marvin

5
#include <iostream> 
#include <conio.h> 

using namespace std; 

double raiseToPow(double ,int) //raiseToPow variable of type double which takes arguments (double, int) 

void main() 
{ 
    double x; //initializing the variable x and i 
    int i; 
    cout<<"please enter the number"; 
    cin>>x; 
    cout<<"plese enter the integer power that you want this number raised to"; 
    cin>>i; 
    cout<<x<<"raise to power"<<i<<"is equal to"<<raiseToPow(x,i); 
} 

// समारोह raiseToPower

double raiseToPow(double x, int power) 
{ 
    double result; 
    int i; 
    result =1.0; 
    for (i=1, i<=power;i++) 
    { 
     result = result*x; 
    } 
    return(result); 
} 
+2

आपके उत्तर में आपके कोड का स्पष्टीकरण होना चाहिए और यह वर्णन होना चाहिए कि यह समस्या को कैसे हल करता है। – AbcAeffchen

9

सी में की परिभाषा ++ "^" ऑपरेटर एक बिटवाइज़ या है। यह एक शक्ति को बढ़ाने के लिए काम नहीं करता है। एक्स < < एन द्विआधारी संख्या का एक बायां शिफ्ट है जो कि x से 2 गुणा गुणा करने के समान है और इसका उपयोग केवल 2 शक्तियों को बढ़ाने के दौरान किया जा सकता है। पाओ फ़ंक्शन एक गणित कार्य है जो सामान्य रूप से काम करेगा।

6

मेरे पास टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है, लेकिन यदि आप क्यूटी के साथ काम करना पसंद करते हैं, तो उनके पास अपना स्वयं का संस्करण है।

#include <QtCore/qmath.h> 
    qPow(x, y); // returns x raised to the y power. 

या यदि आप क्यूटी का उपयोग नहीं कर रहे हैं, तो सेमीथ मूल रूप से वही बात है।

#include <cmath> 
    double x = 5, y = 7; //As an example, 5^7 = 78125 
    pow(x, y); //Should return this: 78125 
0
int power (int i, int ow) // works only for ow >= 1 
{ // but does not require <cmath> library!=) 
    if (ow > 1) 
    { 
     i = i * power (i, ow - 1); 
    } 
    return i; 
} 

cout << power(6,7); //you can enter variables here 
1

ध्यान दें कि पॉव (एक्स, वाई) के उपयोग के कम कुशल है की तुलना में एक्स एक्स एक्स y बार के रूप में दिखाया गया है और यहां https://stackoverflow.com/a/2940800/319728 जवाब दे दिया।

तो यदि आप दक्षता के लिए जा रहे हैं x x x।

0

मैं पुस्तकालय cmath या math.h उपयोग कर रहा हूँ क्रम में pow() पुस्तकालय कार्यों कि शक्तियों

#include<iostream> 
#include<cmath> 

int main() 
{ 
    double number,power, result; 
    cout<<"\nEnter the number to raise to power: "; 
    cin>>number; 
    cout<<"\nEnter the power to raise to: "; 
    cin>>power; 

    result = pow(number,power); 

    cout<<"\n"<< number <<"^"<< power<<" = "<< result; 

    return 0; 
} 
+0

यह उत्तर पहले से ही साल पहले प्रदान किया गया था, है ना? –

+0

लेकिन मैन्युअल रूप से पाउ() फ़ंक्शन का उपयोग किए बिना प्रदर्शन कैसे करें। – Sushant

संबंधित मुद्दे