算法:规律查找

求13^n,(1<=n<=1300000)

题目描叙:

       求13的n次方(12 < n <1300000

样例输入:

        13

        20

样例输出:

      253

      801

 

 

解题思路:

    先通过程序找出规律,得知结果的变化周期是100,设a[n]代表13^n最后三位数,可知道a[1]=a[101]=a[201]=……,a[2]=a[102]=a[201]……。

 

     所以得到如下的程序:

 

//n较小的时候成立

#include < iostream >
using namespace std;
int main()
{
int n;
while(scanf(“%d”,&n)==1)
{
int m=13;
   for(int i=1;i < n; i++)
   {


      m*=13;
      m%=1000;
   }
   cout<<m<<endl;
}
}

//n较大时程序如下  
#include < iostream >

using namespace std;
int a[10000]={1,13,169};

int main()
{
   int n=2;
   int j,i=0;
   int m=13;
while(1)
{
   
      m*=13;
  m%=1000;
          a[n]=m;
  n++;
  if(n==103)
  break;  
}
__int64 s;
while(scanf(“%I64d”,&s)==1)
{
   __int64 t=s % 100;
   cout<<a[t]<<endl;
}
}

 

 

 

    原文作者:查找算法
    原文地址: https://blog.csdn.net/zjq_1314520/article/details/70145226
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞