3-15实验

该程序使用C++编写了两个重载的递归函数getPower,分别处理整型和实型的指数运算。当指数为负数时,整型版本返回0,而实型版本则能处理负指数的情况。主程序中接收用户输入的底数和指数,调用这两个函数并输出结果。若要得到实型结果,可以将整型底数转换为实型再进行计算。
摘要由CSDN通过智能技术生成

编写递归函数getPower计算x^y,在同一个程序中针对整型和实型实现两个重载的函数:

int getPower(int x,int y); //整型形式,当y<0时,返回0

double getPower(double x,int y); //实型形式

在主程序中实现输入输出,分别输入一个整数a和一个实数b作为底数,再输入一个整数m作为指数,输出“a”和"b"。另外请思考,如果在调用getPower函数计算a^m时希望得到一个实型结果(实型结果表示范围更大,而且可以准确表示m<0时的计算结果)该如何调用?

源程序:

#include<iostream>
using namespace std;
int getPower(int x,int y);
double getPower(double x,int y);
int main()
{
    int iNumber,power;
    double dNumber;
    int iAnswer;
    double dAnswer;
    cout<<"Enter an int base number:";
    cin>>iNumber;
    cout<<"Enter a double base number:";
    cin>>dNumber;
    cout<<"To what power?";
    cin>>power;
    iAnswer=getPower(iNumber,power);
    dAnswer=getPower(dNumber,power);
    cout<<iNumber<<"to the"<<power<<"the power is"<<iAnswer<<endl;
    cout<<dNumber<<"to the"<<power<<"the power is"<<dAnswer<<endl;
    return 0;
    
 } 
 int getPower(int x,int y)
 {
     if(y==1)
     return x;
     else if(y==0)
     return 1;
     else if(y<0)
     return 0;
     else
     return(x*getPower(x,y-1));
     
 }
 double getPower(double x,int y)
 {
     if(y==1)
     return x;
     else if(y==0)
     return 1;
     else if(y<0)
     return 1/getPower(x,y);
     else
     return (x*getPower(x,y-1));
 }
 如果在调用getPower函数计算a^m时希望得到一个实型结果,可以将a强制转换为double类型:

dAnswer=getPower((double)iNumber,power);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值