zoukankan      html  css  js  c++  java
  • HDU 1097.A hard puzzle-快速幂/取模

    快速幂:

    代码:

    ll pow_mod(ll a,ll b){
         ll ans=1;
         while(b){
             if(b%2==1){
                 ans=ans*a%mod;
             }
             a=a*a%mod;
             b=b/2;                              //这里是转化为二进制之后的进位---左进位
         }
         return ans;
     }

    例子:

      2^10       1 0 1 0 a=2,b=10   0-->a=a*a;a=4 进位为1-->ans=4;a=16;

                                                                          进位为0-->a=256;

                                                                          进位为1-->ans=4*256=1024;
      2^8         1 0 0 0 a=2,b=8    a=a*a  a=4 a=16  a=256 ans=ans*a;
      2^11       1 0 1 1 a=2,b=11   ans=2;a=4;ans=8;a=16;a=256;ans=8*256;

    写了一道题:

    这道题要在快速幂中取模,利用公式a*b%c=((a%c)*b)%c,这样每一步都进行这种处理,这就解决了a^b可能太大存不下的问题,但这个算法的时间复杂度依然没有得到优化

    HDU1097A hard puzzle

    Problem Description
    lcy gives a hard puzzle to feng5166,lwg,JGShining and Ignatius: gave a and b,how to know the a^b.everybody objects to this BT problem,so lcy makes the problem easier than begin.
    this puzzle describes that: gave a and b,how to know the a^b's the last digit number.But everybody is too lazy to slove this problem,so they remit to you who is wise.
     
    Input
    There are mutiple test cases. Each test cases consists of two numbers a and b(0<a,b<=2^30)
     
    Output
    For each test case, you should output the a^b's last digit number.
     
    Sample Input
    7 66 8 800
     
    Sample Output
    9 6
     
     
     
     
    代码;
    #include<bits/stdc++.h>
    using namespace std;
    typedef unsigned long long ull;
    ull mod=1e9;
    ull pow(ull a,ull b){ ull ans=1;
       
    while(b!=0){ if(b%2==1) ans=ans*a%mod; a=a*a%mod; b=b/2; } return ans; } int main(){ ull a,b; while(~scanf("%llu%llu",&a,&b)){ ull cnt=pow(a,b); ull ans=cnt%10; printf("%llu ",ans); } return 0; }
     


     

  • 相关阅读:
    SharePoint服务器场环境安装升级补丁的详细步骤
    备注:常用Js脚本
    XMLHttpRequest对象使用示例
    TroubleShoot: SharePoint管理中心503错误,由于配置问题,无法加载模块 DLLowssvr.dll
    递归获取SharePoint文档库文件夹内的所有文件
    Datatable分页通用方法
    递归绑定树形菜单
    sharepoint发布站点匿名登陆访问不了文档库和表单库的解决办法
    Microsoft Office SharePoint Server 2007的文件目录结构
    Sharepoint母版页的应用
  • 原文地址:https://www.cnblogs.com/ZERO-/p/6485682.html
Copyright © 2011-2022 走看看