[D+70]20220218


10952号

簡単そうに見えますが、私が想像していたより長いです.
タイムアウト出力タイムアウトが表示され続け、問題が見つかるまで時間がかかりました.
釈然としない.
const input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let i=0;
while(true){
    let nums = input[i].split(' ');
    
    a = Number(nums[0]);
    b = Number(nums[1]);
    
    if(a==0 && b==0){
        break;
    }
    console.log(a+b);
    i++;
}
10952号
const input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let i=0;
while(true){
    let nums = input[i].split(' ');
    
    a = Number(nums[0]);
    b = Number(nums[1]);

    let answer = a+b
    
    if(!answer){
        break;
    }
    console.log(answer);
    i++;
}
上記の問題
1110番
let input = require('fs').readFileSync('/dev/stdin').toString();
let origin = Number(input)
let count = 0

while (true) {
    let sum = Math.floor(input/10) +input%10
    input = (input%10)*10 + sum%10
    count++

    if(input === origin) 
        break
}
console.log(count)
この問題1の位置はinput%10,10の位置はMathである.floor(input/10)
その後、1のビット数を10のビット数(input%10)*10に設定できます.
聖書を知っていれば簡単に解決できる問題だ.
でもここでMathfloorとParseIntの違いが気になります.
検索した時にいいブログがあったので分かりました!
2つの方法が正数である場合、低下の結果が表示されます.
a = Math.floor( "12.34" ); // 12
b = Math.floor( "56.78" ); // 56

a2 = parseInt( "12.34" ); // 12
b2 = parseInt( "56.78" ); // 56 
しかし、負数であれば違いがあります.
c = Math.floor( "-12.34" ); // -13
d = Math.floor( "-56.78" ); // -57

c2 = parseInt( "-12.34" ); // -12
d2 = parseInt( "-56.78" ); // -56
Math、コンソールウィンドウに示すように.floor法が小数第1位から正数に下がった場合,parseInt法は上向きである.
parseIntメソッドは小数点を捨てるから!
その他の差異
e = Math.floor( "12  34  56" ); // NaN

e2 = parseInt( "12  34  56" ); // 12
そして今日解決した問題はwhileゲートなのでwhileゲートを使って、forゲートとの違いが何なのか知りたいです.
通常for文は、繰返し数が決定された場合に使用されます.
while文は()条件式評価後に実行され、評価に戻る方法です.
たとえば、for文が5回繰り返されると、while文は成功するまで繰り返されます!