【Codewars】ブラウザでコーディングの基礎からトレーニングできるサイト (ブラウザでvimが使えて32種類のプログラミング言語に対応。4000個以上の問題が投稿されています!) という記事で Codewars サイトを紹介させていただいたんですが、なんせ英語のサイトなので「問題が読めましぇーん」という方も少なくないと思いますので、簡単な(正答率の多い)問題から順に「問題文の日本語訳」を提示してみたいと思います。今回の問題は(実は…やってみると)簡単じゃないです(初級者にとっては)。
尚、Codewars にサインアップしてなくても問題を解くことはできますので、上記記事をご覧になって操作方法についてご理解いただけたら、下記の「URL:」をクリックして問題のページに直接とんでください。IDE(解答)画面を開くには「TRAIN(トレーニングをする)」というボタンをクリックしてください。
Codewars はブラウザ上で(自分のマシンに開発環境がなくても)コード作成・デバッグ・(問題作成者が提供する)テストの実行ができて、「正解であるとお墨付きがもらえた時点で解答を提出できる」という特徴があります。(なので、ラクチンで安心です。また、CodinGame もその点は同じです)
また、本テストを含めてテスト実行でエラーとなっても一切ペナルティはありませんので、(ご自身の環境の方が開発しやすいという理由でなければ)、Codewars上(ブラウザ内)でがんがんテスト実行してみてくださいね。
【追記2018/01/15】
オンラインプログラム実行環境「paiza.io」上にテスト環境を用意しました(但し、JavaScriptのみ。他の言語についてはCodewars上でテスト実行をお願いします)。下記URLを開いて「answer.js」を編集した後で Ctrl-Enter を押してください。コンソールに「All Tests Successful.」と表示されたら成功です。(paiza.io の使い方が分からない場合はコメントしてください。よろしくお願いいたします)
https://paiza.io/projects/dgbFEp7BFk65IPu8vL8--A?locale=ja-jp
ご不明な点があったらコメントしてくださいませ。また、無事に SUBMIT できたら、是非とも自慢の解答(ソースコード)をコメント欄に貼り付け(投稿)してください。問題がサポートしている言語であれば、どのプログラミング言語を使っていただいても構いません。
- 問題の名称: Sum Strings as Numbers (文字列を数値として加算)
- URL: https://www.codewars.com/kata/sum-strings-as-numbers
- 対応言語: C# JavaScript PHP (※Codewars の各問題は32種類のプログラミング言語のうちのいずれかに対応しています。問題毎に対応言語が異なります)
さて今回の問題文です。
Given the string representations of two integers, return the string representation of the sum of those integers.
2つの整数の文字表現を受け取り、それらの整数の合計の文字表現を返してください。
A string representation of an integer will contain no characters besides the ten numerals "0" to "9".
尚、整数の文字表現は "0" から "9" までの10種類の数値以外は含みません。
sumStrings('1','2') // => '3'
sumStrings('50095301248058391139327916261',
'81055900096023504197206408605')
// => '131151201344081895336534324866'
今回の問題は(実は…やってみると)簡単じゃないです。
コメントに私のやった拙い解答を貼り付けておきます。できればみないでとりあえずチャレンジしてみてくださいね。SUBMIT FINAL した後に見れる達人のソースが面白いですよ!(これを見よ!!!)
【追記】@think49 さんよりいただいたコメントを参考にして記事タイトルも変えました。
Number.MAX_SAFE_INTEGER を超える正の整数値における和算器ですか。
簡易的なbigIntですが、問題文に整数の限界値に触れてないのが意地悪ですね。
それでは!w 次回をお楽しみに!!ww
問題文を日本語訳してみるプロジェクト!!w (どんどん問題がチャレンジングになりますよ~!)
- プログラマ8級【Even or Odd (偶数または奇数)】このプログラミング問題があなたに解けるでしょうか!!
- プログラマ5級【Moving Zeros To The End (ゼロを最後尾に移動)】このプログラミング問題があなたに解けるでしょうか!!
- プログラマ4級【Sum Strings as Numbers (文字列を数値として加算)】このプログラミング問題があなたに解けるでしょうか!!(Number.MAX_SAFE_INTEGER を超える正の整数値における和算器を実装しなさい)
- プログラマ4級【Valid Braces (括弧の妥当性チェック)】このプログラミング問題があなたに解けるでしょうか!!(XML/HTML/Lispソースパーザーの基礎テクニック)