2042. 【2016.5.21普及组模拟】SuperPow

题目描述
众所周知,a^b表示a的b次幂。例如:2^3=2*2*2=8。
一天,某只肥皂很无聊,于是在纸上写了形如a^b的式子玩。FL见到了,过来一起玩。突然,FL脑洞一开:我给你普及一个符号“^^”,叫做超级幂。a^^b表示a^(a^(a^(a^a^(...)))),共b个a。例如2^^3=2^(2^2)=2^4=16。那么你知道a^^b的个位数是多少么?
肥皂表示一脸懵逼,于是一旁看热闹的YDL出现了,随手写了一个式子:(a1^^b1)*(a2^^b2)*(a3^^b3)........(an^^bn),保证ai的个位数不等于2或4或8。说,请求出这个式子的个位数。
肥皂和FL两脸懵逼。现在FL只好想你求助了。
注意:a^^0=1,表示有0个a,  例如: 3^^0=1
题解:
  有规律的,尾数不会出现2,4,8,而尾数是1,5.6.9就乘以尾数,只剩下3和7,自己推一推规律。
代码:
  var
  i,j,m,n,ans,x,y,z:longint;
begin
  readln(n);
  for i:=1 to n do
    begin
      ans:=1;
      readln(m);
      for j:=1 to m do
        begin
          read(x,y);
          z:=x mod 10;
          if y=0 then ans:=ans*1
          else
          if y=1 then
            ans:=ans*x mod 10
          else
          if (z=5)or(z=6)or(z=9) then
            ans:=ans*x mod 10
          else
          if z=3 then
            if x mod 4=1 then
              ans:=ans*3 mod 10
            else
              ans:=ans*7 mod 10
          else
          if z=7 then
            if x mod 4=1 then
              ans:=ans*7 mod 10
            else
              ans:=ans*3 mod 10;
         end;
      writeln(ans);
    end;
end.
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值