它给出了一个大值的错误

It gives an error for big values

本文关键字:一个 错误      更新时间:2023-10-16

我正在解决一个简单的问题,即寻找2的n次方。它适用于n的较低幂,但当我尝试为更高幂进行此操作时失败,此外,我被问到的问题必须%10^9+7才能缩小大小。如果你能告诉我哪里出了问题。

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
long long int pro=1;
long long int func(int n)
{
if(n!=1)
{   pro=pro%1000000007;
    pro=(2*func(n-1));
 return pro;
}
return 1;
}
int main()
{

    pro=1;
    long long int n=555555;
     long long int x;
    if(n!=1)
  x=func(n);
    else
      x=1;
    cout<<x<<endl;

  }
return 0;
  }
 if(n!=1){
   x=func(n);
 }else{
      x=1; //this is incorrect, you should return 2.
 }

还有

    long long int func(int n)
    {
      if(n!=1)
      { 
         pro=(2*(func(n-1)%1000000007))%1000000007;
         return pro;
       }
       else return 2;
     }
相关文章: