#Java 10, 77 bytes (limited to 232-1)
Java 10, 77 bytes (limited to 232-1)
a->{int i=a.length-1,j=a[i];for(;i-->0;)j=(int)Math.pow(a[i],j);return j%10;}
Input is an int[], output is an int.
#Java 10, 82 bytes (limited to 264-1)
Java 10, 82 bytes (limited to 264-1)
a->{int i=a.length-1;var j=a[i];for(;i-->0;)j=(long)Math.pow(a[i],j);return j%10;}
Input is a long[], output is a long.
#Java 10, 177 bytes (unlimited)
Java 10, 177 bytes (unlimited)
a->{int i=a.length-1;var j=a[i];for(;i-->0;){var r=j.ONE;for(var t=a[i];j.signum()>0;t=t.multiply(t),j=j.shiftRight(1))if(j.testBit(0))r=r.multiply(t);j=r;}return j.mod(j.TEN);}
Input is a java.math.BigInteger[], output is a java.math.BigInteger.
java.math.BigInteger has a builtin pow method, but only accepts int as parameter. This last answer uses a golfed variation of this SO answer as implementation of a pow(BigInteger, BigInteger) method.
#Java 10, 77 bytes (limited to 232-1)
a->{int i=a.length-1,j=a[i];for(;i-->0;)j=(int)Math.pow(a[i],j);return j%10;}
Input is an int[], output is an int.
#Java 10, 82 bytes (limited to 264-1)
a->{int i=a.length-1;var j=a[i];for(;i-->0;)j=(long)Math.pow(a[i],j);return j%10;}
Input is a long[], output is a long.
#Java 10, 177 bytes (unlimited)
a->{int i=a.length-1;var j=a[i];for(;i-->0;){var r=j.ONE;for(var t=a[i];j.signum()>0;t=t.multiply(t),j=j.shiftRight(1))if(j.testBit(0))r=r.multiply(t);j=r;}return j.mod(j.TEN);}
Input is a java.math.BigInteger[], output is a java.math.BigInteger.
java.math.BigInteger has a builtin pow method, but only accepts int as parameter. This last answer uses a golfed variation of this SO answer as implementation of a pow(BigInteger, BigInteger) method.
Java 10, 77 bytes (limited to 232-1)
a->{int i=a.length-1,j=a[i];for(;i-->0;)j=(int)Math.pow(a[i],j);return j%10;}
Input is an int[], output is an int.
Java 10, 82 bytes (limited to 264-1)
a->{int i=a.length-1;var j=a[i];for(;i-->0;)j=(long)Math.pow(a[i],j);return j%10;}
Input is a long[], output is a long.
Java 10, 177 bytes (unlimited)
a->{int i=a.length-1;var j=a[i];for(;i-->0;){var r=j.ONE;for(var t=a[i];j.signum()>0;t=t.multiply(t),j=j.shiftRight(1))if(j.testBit(0))r=r.multiply(t);j=r;}return j.mod(j.TEN);}
Input is a java.math.BigInteger[], output is a java.math.BigInteger.
java.math.BigInteger has a builtin pow method, but only accepts int as parameter. This last answer uses a golfed variation of this SO answer as implementation of a pow(BigInteger, BigInteger) method.
#Java 10, 77 bytes (limited to 232-1)
a->{int i=a.length-1,j=a[i];for(;i-->0;)j=(int)Math.pow(a[i],j);return j%10;}
Input is an int[], output is an int.
#Java 10, 82 bytes (limited to 264-1)
a->{int i=a.length-1;var j=a[i];for(;i-->0;)j=(long)Math.pow(a[i],j);return j%10;}
Input is a long[], output is a long.
#Java 10, 177 bytes (unlimited)
a->{int i=a.length-1;var j=a[i];for(;i-->0;){var r=j.ONE;for(var t=a[i];j.signum()>0;t=t.multiply(t),j=j.shiftRight(1))if(j.testBit(0))r=r.multiply(t);j=r;}return j.mod(j.TEN);}
Try it online. Input is a java.math.BigInteger[], output is a java.math.BigInteger.
java.math.BigInteger has a builtin pow method , but only accepts int as parameter. This last answer uses a golfed variation of this SO answer as implementation of a pow(BigInteger, BigInteger) method.
#Java 10, 77 bytes (limited to 232-1)
a->{int i=a.length-1,j=a[i];for(;i-->0;)j=(int)Math.pow(a[i],j);return j%10;}
#Java 10, 82 bytes (limited to 264-1)
a->{int i=a.length-1;var j=a[i];for(;i-->0;)j=(long)Math.pow(a[i],j);return j%10;}
#Java 10, 177 bytes (unlimited)
a->{int i=a.length-1;var j=a[i];for(;i-->0;){var r=j.ONE;for(var t=a[i];j.signum()>0;t=t.multiply(t),j=j.shiftRight(1))if(j.testBit(0))r=r.multiply(t);j=r;}return j.mod(j.TEN);}
#Java 10, 77 bytes (limited to 232-1)
a->{int i=a.length-1,j=a[i];for(;i-->0;)j=(int)Math.pow(a[i],j);return j%10;}
Input is an int[], output is an int.
#Java 10, 82 bytes (limited to 264-1)
a->{int i=a.length-1;var j=a[i];for(;i-->0;)j=(long)Math.pow(a[i],j);return j%10;}
Input is a long[], output is a long.
#Java 10, 177 bytes (unlimited)
a->{int i=a.length-1;var j=a[i];for(;i-->0;){var r=j.ONE;for(var t=a[i];j.signum()>0;t=t.multiply(t),j=j.shiftRight(1))if(j.testBit(0))r=r.multiply(t);j=r;}return j.mod(j.TEN);}
Input is a java.math.BigInteger[], output is a java.math.BigInteger.
java.math.BigInteger has a builtin pow method , but only accepts int as parameter. This last answer uses a golfed variation of this SO answer as implementation of a pow(BigInteger, BigInteger) method.
#Java 10, 77 bytes (limited to 232-1)
a->{int i=a.length-1,j=a[i];for(;i-->0;)j=(int)Math.pow(a[i],j);return j%10;}
#Java 10, 82 bytes (limited to 264-1)
a->{int i=a.length-1;var j=a[i];for(;i-->0;)j=(long)Math.pow(a[i],j);return j%10;}
#Java 10, 177 bytes (unlimited)
a->{int i=a.length-1;var j=a[i];for(;i-->0;){var r=j.ONE;for(var t=a[i];j.signum()>0;t=t.multiply(t),j=j.shiftRight(1))if(j.testBit(0))r=r.multiply(t);j=r;}return j.mod(j.TEN);}