第11回【JavaScript】N が M ずつ増えたときにいつ K を越える?、毎日増加するお金

現在取り組んでいるのは、paiza ラーニング問題集「ループメニュー 2」になります。

はじめに

猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。

JavaScript をゼロから勉強してみよう、のコーナー 11 回目です。

最近はコンパネからいろいろと作業が出来てしまうのでサーバーでコマンドを打つ機会が減っています。久しぶりにガッツリとサーバー作業をしていて、コマンドが出てこない。制限があるのでネットワークには繋げず、インターネットで調べることが出来ない。焦りました。

それでは、今日も頑張ってみようと思います。

N が M ずつ増えたときにいつ K を越える? (paizaランク D 相当)

整数 N, M, K が与えられます。
N が M ずつ増えるとき、何回目に K を越えるか出力してください。


入力される値

N M K

・ 1 行で整数 N, M, K が与えられます。

入力値最終行の末尾に改行が1つ入ります。


期待する出力

N が M ずつ増えるとき、何回目に K を越えるか出力してください。

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

・ 1 ≦ N, M, K ≦ 1,000


入力例

1 1 10

出力例

10

N が M ずつ増えて K を超える。N とか M とか K とか。

JavaScript
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
  let [n,m,k] = lines[0].split(/\s/).map(Number);
  let ans = 0;
  while (n <= k) {
      ans++;
      n += m;
  }
  console.log(ans);
});
Python
N,M,K = map(int,input().split())
ans = 0
while N <= K:
    N += M
    ans += 1
print(ans)

毎日増加するお金 (paizaランク D 相当)

現在所持金を A 円持っています。
所持金が毎日 10% ずつ増えるとき、何日後に B 円を超えるか出力してください。
また、増加するお金は小数点以下切り捨てで考えることとします。
例として、所持金が 831 円 のとき、10% は 83.1円 ですが、増加するお金は 83 円 です。


入力される値

A B

・ 1 行で整数 A B が与えられます。

入力値最終行の末尾に改行が1つ入ります。


期待する出力

所持金が毎日 10% ずつ増えるとき、何日後に B 円を超えるか出力してください。

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

・ 10 ≦ A ≦ B ≦ 10,000


入力例

10 100

出力例

29

Python のときも書きましたが、LeoSaki(旦那)の所持金も増やしてもらえませんか?

JavaScript
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
  let [a,b] = lines[0].split(/\s/).map(Number);
  let ans = 0;
  while (a <= b) {
      a += Math.trunc(a * 0.1);
      ans++;
  }
  console.log(ans);
});
Python
A,B = map(int,input().split())
ans = 0
while not A > B:
    A = int(A * 1.1)
    ans += 1
print(ans)

最後に

グーグル先生ありがとうございます。しかし、グーグル先生頼みになると覚えなくなるなぁ。サーバー室とかで焦ってもどうしようもないしなぁ。

JavaScrip のお勉強にあたっては、グーグル先生頼みです。検索能力も立派な能力だと思う。インターネット環境があるのに、どうすればいいですか、って「ググレカス」と叫びそうになるお年頃。

引き続き、よろしくお願いいたします!

Python の第11回はこちら