結果

問題 No.167 N^M mod 10
ユーザー tnoda_tnoda_
提出日時 2015-04-02 16:01:36
言語 Go
(1.22.1)
結果
AC  
実行時間 19 ms / 1,000 ms
コード長 855 bytes
コンパイル時間 15,322 ms
コンパイル使用メモリ 214,180 KB
実行使用メモリ 4,348 KB
最終ジャッジ日時 2023-10-21 23:45:53
合計ジャッジ時間 12,756 ms
ジャッジサーバーID
(参考情報)
judge10 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
4,348 KB
testcase_01 AC 1 ms
4,348 KB
testcase_02 AC 19 ms
4,348 KB
testcase_03 AC 18 ms
4,348 KB
testcase_04 AC 18 ms
4,348 KB
testcase_05 AC 1 ms
4,348 KB
testcase_06 AC 1 ms
4,348 KB
testcase_07 AC 1 ms
4,348 KB
testcase_08 AC 1 ms
4,348 KB
testcase_09 AC 1 ms
4,348 KB
testcase_10 AC 1 ms
4,348 KB
testcase_11 AC 1 ms
4,348 KB
testcase_12 AC 1 ms
4,348 KB
testcase_13 AC 1 ms
4,348 KB
testcase_14 AC 1 ms
4,348 KB
testcase_15 AC 1 ms
4,348 KB
testcase_16 AC 1 ms
4,348 KB
testcase_17 AC 1 ms
4,348 KB
testcase_18 AC 1 ms
4,348 KB
testcase_19 AC 1 ms
4,348 KB
testcase_20 AC 1 ms
4,348 KB
testcase_21 AC 2 ms
4,348 KB
testcase_22 AC 18 ms
4,348 KB
testcase_23 AC 18 ms
4,348 KB
testcase_24 AC 18 ms
4,348 KB
testcase_25 AC 19 ms
4,348 KB
testcase_26 AC 10 ms
4,348 KB
testcase_27 AC 19 ms
4,348 KB
testcase_28 AC 19 ms
4,348 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

package main

import (
	"fmt"
	"strconv"
)

func lastDigit(s string) int {
	return int(s[len(s)-1] - '0')
}

func mod4(s string) int {
	l := len(s)
	switch l {
	case 1:
		s = s[l-1:]
	default:
		s = s[l-2:]
	}
	x, _ := strconv.Atoi(s)
	return x % 4
}

func solve() int {
	var N, M string
	fmt.Scan(&N, &M)
	if M == "0" {
		return 1
	}
	n := lastDigit(N)
	if M == "1" {
		return n
	}
	switch n {
	case 0, 1, 5, 6:
		return n
	case 2:
		pat := []int{6, 2, 4, 8}
		return pat[mod4(M)]
	case 3:
		pat := []int{1, 3, 9, 7}
		return pat[mod4(M)]
	case 4:
		pat := []int{6, 4, 6, 4}
		return pat[mod4(M)]
	case 7:
		pat := []int{1, 7, 9, 3}
		return pat[mod4(M)]
	case 8:
		pat := []int{6, 8, 4, 2}
		return pat[mod4(M)]
	case 9:
		pat := []int{1, 9, 1, 9}
		return pat[mod4(M)]
	default:
		panic("do not reach here")
	}
}

func main() {
	fmt.Println(solve())
}
0