求x的n次方(x^n) 库函数power

目录

1.0【问题描述】

2.0 简述

3.0 避坑

4.0 重点、重点、重点 

5.0 完整代码

6.0 总结

1.0【问题描述】

在主函数中,通过键盘分别输入一个正整数(n),调用函数“long power(int n)”,计算1到n之间的每个整数对应的全部“x的i次方值”(1<=i<=n),并在主函数中输出其“x的i次方值”。

【输入形式】

从键盘上输入2个“正整型数据”,例如输入“5 <空格符> 3”,则表示求解5的3次方(即5^3,或53)。

【输出形式】

1到n之间的每个整数对应的全部“x的i次方值”,每组数据间用“换行符”分隔。

【样例输入1】

5 3

【样例输出1】

The 1 power of 5 is 5.

The 2 power of 5 is 25.

The 3 power of 5 is 125.

【样例输入2】

-7 4

【样例输出2】

The 1 power of -7 is -7.

The 2 power of -7 is 49.

The 3 power of -7 is -343.

The 4 power of -7 is 2401.

2.0 简述

这是一道程序片段题,所以别问为啥库函数里有,不直接调用;为啥能够更简单的实现,却要用调用函数  因为我也不知道(doge)

本题给出的程序片段如下:

3.0 避坑

最开始我连题目都没看明白

为啥题目说是输入一个正整数(n),调用函数“long power(int n)

结果给出的片段又给我来这出

真的是满头问号???

最后在一位学长的帮助下我终于理解了(感谢

4.0 重点、重点、重点 

注意这个函数只有一个参数

但我们输入了两个实参   一个底数 一个指数  所以必须想办法把两个参数联系起来(可以把两个参数转化为一个十位数,后面再转回来)

5.0 完整代码

#include  <iostream>
using  namespace  std;

int  main()
{
    long  power(int  x);   //power函数里只有一个参数   但是有两个变量  所以需要把两个变量变为一个变量  转化一波 
    int  n,i,x;
    long  p;
    cin>>x>>n;
    for(i=1;i<=n;i++)
    {
                
        bool flag=false;      //区别正负数 
        double a=0;
        if(x<0)           //负数情形 
        {
            a = (-x)*10+i;
            flag=true;
        }
        else
        {
            a=x*10+i;
        }
            p=power(a);
        if (flag)             //负数 
        {
            if(i%2==0)           //负数的偶次幂
              {
                cout<<"The "<<i<<" power of "<<x<<" is "<<p<<"."<<endl;
              }
             else                     //负数的奇次幂
              {
                cout<<"The "<<i<<" power of "<<x<<" is "<<-p<<"."<<endl;
              }
        }
        else
        {
            cout<<"The "<<i<<" power of "<<x<<" is "<<p<<"."<<endl;      //正数
        }
    }
        return  0;
}

long  power(int  x)              //此函数只能计算正数 
{
    long k;
    double num=x/10;               //得到底数 
    k=num;
    double index=x%10;                   //得到指数 
    while(index>1)                  //用一个循环 计算幂值
    {
	k*=num;
    index--;
	}

        return  k;
}

 

6.0 总结

思路学会、方法拿捏就行  这个代码没啥实用性(狗头

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧帝想飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值