问题标题: 酷町堂:1467求x的n次方

0
0
已解决
李泽远
李泽远
高级天翼
高级天翼

求x^n,

有时数据过大,我的程序就用科学计数法了,请问如何不让电脑用科学计数法?

#include<iostream>
using namespace std;
double power(double x,double y){
    if(y==1)
        return x;
    return x*power(x,y-1);
}
int main(){
    double a,b;
    cin>>a>>b;
    cout<<power(a,b);
    return 0;
}

注:用pow函数也不行。

李泽远在2020-02-24 22:16:36追加了内容

比如7^8,

标准输出为:5764801,

而我的程序输出的是:5.7648e+006。

请问如何改?


0
已采纳
刘奕然
刘奕然
初级守护
初级守护

用快速幂

unsigned long long f(int x,int n){
    if(n==1)
        return x;//x的1次幂
    if(n%2==1)
        return x*f(x*x,(n-1)/2);//奇数只是提出一个x单独乘
    else
        return f(x*x,n/2);//x^n=x*x的n/2次方
}//核心代码段

 

0
0
0
我要回答