目录
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 总结
思路学会、方法拿捏就行 这个代码没啥实用性(狗头