結果
| 問題 |
No.167 N^M mod 10
|
| コンテスト | |
| ユーザー |
明智重蔵
|
| 提出日時 | 2015-08-29 06:43:53 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,353 bytes |
| コンパイル時間 | 714 ms |
| コンパイル使用メモリ | 118,332 KB |
| 実行使用メモリ | 27,768 KB |
| 最終ジャッジ日時 | 2024-07-18 15:28:53 |
| 合計ジャッジ時間 | 2,059 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 2 |
| other | AC * 2 WA * 25 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;
using System.Collections.Generic;
class Program
{
static string InputPattern = "Input3";
static List<string> GetInputList()
{
var WillReturn = new List<string>();
if (InputPattern == "Input1") {
WillReturn.Add("22");
WillReturn.Add("22");
//4
}
else if (InputPattern == "Input2") {
WillReturn.Add("56");
WillReturn.Add("65");
//6
}
else {
string wkStr;
while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
}
return WillReturn;
}
static void Main()
{
List<string> InputList = GetInputList();
string StrN = InputList[0];
int IntN = int.Parse(StrN.Substring(StrN.Length - 1));
string StrM = InputList[1];
//0乗は1
if (StrM == "0") {
Console.WriteLine(1);
return;
}
//Nの1桁目に対応する循環数列
string JyunkanStr = DeriveJyunkanStr(IntN);
int Hou = JyunkanStr.Length;
//Mを法で割った余り
int ModVal = DeriveMod12(StrM, Hou);
Console.WriteLine("{0}を{1}で割った余りは{2}", StrM, Hou, ModVal);
int TargetInd = ModVal - 1;
if (TargetInd == -1) TargetInd = Hou - 1;
Console.WriteLine(JyunkanStr[TargetInd]);
}
//Mを法で割った余りを返す
static int DeriveMod12(string pStrM, int pHou)
{
//法が1の場合
if (pHou == 1) return 0;
int WillReturn = 0;
int Jyousuu = 1;
for (int I = pStrM.Length - 1; 0 <= I; I--) {
int CurrNum = pStrM[I] - '0';
WillReturn = (WillReturn + CurrNum * Jyousuu) % pHou;
Jyousuu = (Jyousuu * 10) % pHou;
}
return WillReturn;
}
//Nの1桁目に対応する循環数列を返す
static string DeriveJyunkanStr(int pIntN)
{
if (pIntN == 0) return "0";
if (pIntN == 1) return "1";
if (pIntN == 2) return "2486";
if (pIntN == 3) return "391";
if (pIntN == 4) return "46";
if (pIntN == 5) return "5";
if (pIntN == 6) return "6";
if (pIntN == 7) return "7931";
if (pIntN == 8) return "8426";
else return "91";
}
}
明智重蔵