結果

問題 No.294 SuperFizzBuzz
ユーザー zizi4n5zizi4n5
提出日時 2017-07-02 22:00:19
言語 C#(csc)
(csc 3.9.0)
結果
TLE  
実行時間 -
コード長 1,382 bytes
コンパイル時間 1,096 ms
コンパイル使用メモリ 110,796 KB
実行使用メモリ 376,456 KB
最終ジャッジ日時 2024-04-15 12:42:56
合計ジャッジ時間 7,647 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 27 ms
24,064 KB
testcase_01 AC 26 ms
18,688 KB
testcase_02 TLE -
testcase_03 -- -
testcase_04 -- -
testcase_05 -- -
testcase_06 -- -
testcase_07 -- -
testcase_08 -- -
testcase_09 -- -
testcase_10 -- -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
testcase_14 -- -
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #

using System;

namespace yukicoder_no294
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			int N = int.Parse(Console.ReadLine());

			//制約の中で最も大きなSuperFizzBuzz(25桁)
			//5533533555333355355553555
			//1111111111111111111111111(33,554,432通り)
			// 1桁目は必ず5

			var count = 0;

			for (var digit = 3; true; digit++)
			{
				var max = (int)Math.Pow(2, digit);
				var bCharSum = new Char[digit * max];

				for (var i = 0; i < max; i++)
				{
                    var b = Convert.ToString(i, 2).PadLeft(digit, '0').ToCharArray();
                    b.CopyTo(bCharSum, i * digit);
				}

				var dCharSum = new Char[digit * max];
                for (var i = 0; i < digit * max; i++)
                {
                    switch (bCharSum[i])
                    {
                        case '0':
                            dCharSum[i] = '3';
                            break;
                        default:
                            dCharSum[i] = '5';
                            break;
					}
                }

                var dStrSum = new String(dCharSum);

				for (var i = 0; i < max; i++)
				{
                    var num = Decimal.Parse(dStrSum.Substring(i * digit, digit));

					if (num % 15 == 0 && ++count == N)
					{
						Console.WriteLine("{0}", num);
						return;
					}
				}
			}
		}
	}
}
0