[Backjunnode.js]boj 2004解答
2004グループ0の数
質問する
nセンチの端数を出力するプログラムを作成してください.
入力
1行目は整数n,m(0≦m≦n≦20000000,n!=0)
しゅつりょく
最初の行にncmの末尾数が0の個数を出力します.
テストケース
入力
25 12
しゅつりょく
2
ソースコードメモリ
8472 KB
時間
188 ms
せきぶん入力の2つの組合せ計算式はnです!/(n-m)! * m! n!, (n-m)!, m!それぞれこの2と5の個数nを求めます!の2つの数の中で(n-m)!わあ!2の数の和を引いた値.5の場合も同様の方法で計算します.分子の値から分母値を減算するのは、除算演算子であるためです. の後に0が現れるには、少なくとも1つの2と5が である必要があります.
質問する
nセンチの端数を出力するプログラムを作成してください.
入力
1行目は整数n,m(0≦m≦n≦20000000,n!=0)
しゅつりょく
最初の行にncmの末尾数が0の個数を出力します.
テストケース
入力
25 12
しゅつりょく
2
const rl = require('readline').createInterface(process.stdin, process.stdout);
let input = [];
rl.on('line', (line) => {
input = line.split(' ').map((x) => parseInt(x));
}).on('close', () => {
const n = input[0];
const m = input[1];
const nm = input[0] - input[1];
const two = calc(n)[0] - (calc(m)[0] + calc(nm)[0]);
const five = calc(n)[1] - (calc(m)[1] + calc(nm)[1]);
const answer = Math.min(two, five);
console.log(answer);
});
function calc(v) {
let count_two = 0,
count_five = 0;
for (let i = 2; i <= v; i *= 2) {
count_two += parseInt(v / i);
}
for (let i = 5; i <= v; i *= 5) {
count_five += parseInt(v / i);
}
return [count_two, count_five];
}
メモリ/時間8472 KB
188 ms
Reference
この問題について([Backjunnode.js]boj 2004解答), 我々は、より多くの情報をここで見つけました https://velog.io/@po4tion/백준-node.js-boj-2004-풀이テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol