結果

問題 No.167 N^M mod 10
ユーザー tnoda_
提出日時 2015-04-02 15:42:35
言語 Go
(1.23.4)
結果
WA  
実行時間 -
コード長 842 bytes
コンパイル時間 11,517 ms
コンパイル使用メモリ 234,080 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-10-10 03:34:12
合計ジャッジ時間 12,630 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 17 WA * 10
権限があれば一括ダウンロードができます

ソースコード

diff #

package main

import (
	"fmt"
)

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

func solve() int {
	var N, M string
	fmt.Scan(&N, &M)
	if M == "0" {
		return 1
	}
	n, m := lastDigit(N), lastDigit(M)
	if m == 0 {
		m += 10
	}
	switch n {
	case 0:
		return 0
	case 1:
		return 1
	case 2:
		switch m {
		case 1:
			return 2
		case 2:
			return 4
		default:
			return 6
		}
	case 3:
		if m == 1 {
			return 3
		}
		if m%2 == 0 {
			return 9
		}
		return 1
	case 4:
		if m == 1 {
			return 4
		}
		return 6
	case 5:
		return 5
	case 6:
		return 6
	case 7:
		if m == 1 {
			return 7
		}
		if m%2 == 0 {
			return 9
		}
		return 1
	case 8:
		switch m {
		case 1:
			return 8
		case 2:
			return 4
		default:
			return 6
		}
	case 9:
		if m%2 == 1 {
			return 9
		}
		return 1
	}
	return -1
}

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