Buenas se propone un ejercicio que utilizando el ciclo do while, nos pida un numero y luego la potencia , y obtener el resultado.
OjO el ejercicio a de estar hecho en c++.
Te doy una idea, despues te toca traducirlo a C++ :P
Sabemos que una potenciacion es un conjunto de multiplicaciones. Ejemplo: 2 ** 3 = 2 x 2 x 2.
Usando algun contador, planteamos la condicion del bucle, el cual debe repetirse n veces (El valor que se le asigno al exponente). Ya dentro del bucle, usando un acumulador multiplicamos al valor de la base por el exponente.
Espero que me hayas entendido ;D
Un saludo
Cierto aqui esta traducido a c++, claro esta antes de que contestaras :P.Por cierto la idea que has planteado esta bien pero no has tenido en cuenta los erros, como si alguien decidiera poner 0^-1 = 1/0...Asi que la respuesta no esta del todo bien.
#include<iostream>
#include<stdio.h>
#include<conio.h>
//Ejemplo de elevar potencia sin utilizar Funciones Recurcivas
using namespace std;
int calculadora( int n, int m)
{
int i=0,result=1;
if (m==1 || m==-1) {return n;}
else {
do
{
i=i+1;
result=result*n;
}while(i!=m);
return result;
}
}
int main()
{
int n,m;
cout<<"Dime un numero: "<<" "<<endl;
cin>>n;
cout<<"Dime su potencia: "<<" "<<endl;
cin>>m;
if(m==0) cout<<"El resultado es: 1"<<endl; else{
if (m==-1 && n==0) {cout<<"Error 1/0 es un indeterminacion y no tiene solucion"<<endl;} else{
if (m==-1) {cout<<"El resultado es: 1/"<<calculadora(n,m)<<endl;}
else{ cout<<"El resultado es: "<<" "<<calculadora(n,m)<<endl;}
}
}
system("PAUSE");
return 0;
}
#include <stdlib.h>
#include <stdio.h>
int potencia( int n, int e);
int main()
{
int num, exp;
float res;
printf("\nIngrese un n%cmero: ", 163);
scanf("%d", &num);
printf("\nIngrese el exponente (entero): ");
scanf("%d", &exp);
res = (float)potencia( num, abs(exp));
if( exp < 0)
res = 1./res;
printf("\n\nEl resultado de %d a la %d, es: ", num, exp);
if( num == 0 && exp <= 0)
printf("Indefinido . . .\n");
else
printf("%.4f\n", res);
while( getchar()!='\n');
printf("\n\nPresione ENTER para salir . . .");
getchar();
return EXIT_SUCCESS;
}
int potencia( int n, int e)
{
int r = 1;
for( int i = 1; i <= e; i++){
r *= n;
}
return r;
}
Aqui esta el mio usando solo sumas
#include <cstdlib>
#include <iostream>
using namespace std;
int potencia(int n, int p)
{
int v = 1,t = 0;
for(int i = 0; i < p; i++)
{
for(int x = 0; x < v; x++)
{
t += n;
}
v = t;
t = 0;
}
return v;
}
int main(int argc, char *argv[])
{
int n = 0,p = 0;
cout << "Ingresa Numero: ";
cin >> n;
cout << "Potencia: ";
cin >> p;
cout << potencia(n, p) << endl;
cin;
return EXIT_SUCCESS;
}
hola amigo.......yo a los tiempos que vuelvo al foro..... bueno aqui esta el codigo espero que sea muy sencillo de analizar
#include<iostream.h>
#include<conio.h>
int matematico(int B,int P)
{
int retorna=1;
for(int c;c<P;c++)
retorna*=B;
return retorna;
}
main()
{
unsigned int b,p;
cout<<"Ingrese la base: ";
cin>>b;
cout<<"Ingrese la potencia: ";
cin>>p;
cout<<"La respuesta es: "<<matematico(b,p);
getch();
}