/////////////////////////////////No.48 ロボットの操縦 //入力文字読み取り var inputall = require('fs').readFileSync('/dev/stdin', 'utf8'); //すべて受け取り改行で区切って格納 var inputline = inputall.split("\n"); //東西方向への移動距離と //絶対値を求める(ロボットへの命令の際は東西がどっちかは関係なく移動量なので) var east = Number(inputline[0]); var east_move = Math.abs(east) //南北方向への移動距離と絶対値 var north = Number(inputline[1]); var north_move = Math.abs(north) //ロボットが前進することができる最大の距離 var robot_move = Number(inputline[2]); //ロボットへの命令量 var robot_order = 0 //北方向へ移動 if (north_move != 0) { if (north < 0) { //南に移動するときは東方向に移動してから南に移動することで最短になる robot_order++ } var north_division = Math.floor(north_move / robot_move); if (north_division == 0) { //何回の命令でたどり着けるか robot_order++ } else { robot_order += north_division } if (north_move % robot_move != 0) { //余りが出ると命令量が1増える robot_order++ } } //東方向へ移動 if (east_move != 0) { robot_order++ //東西方向へ90度回転 var east_division = Math.floor(east_move / robot_move); if (east_division == 0) { //何回の命令でたどり着けるか robot_order++ } else { robot_order += east_division } if (east_move % robot_move != 0) {//余りが出ると命令量が1増える robot_order++ } } console.log(robot_order)