๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„์—” ๊ณต๋ถ€/๐Ÿซง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€

[์•Œ๊ณ ๋ฆฌ์ฆ˜ || ๋ฐฑ์ค€ JS] 1676 ํŒฉํ† ๋ฆฌ์–ผ 0์˜ ๊ฐœ์ˆ˜

728x90

์ฒ˜์Œ์—” ํŒฉํ† ๋ฆฌ์–ผ์ด ๋ญ๋”๋ผ ํ•˜๊ณ  ์ฐพ์•„๋ดค๊ณ , 

1 ~ ์–ด๋–ค ์ˆ˜ N๊นŒ์ง€ ๋‹ค ๊ณฑํ•œ ๊ฐ’ = N!

์„ ์ด๋ ‡๊ฒŒ ํŽ™ํ† ๋ฆฌ์–ผ๋กœ ํ‘œ์‹œํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

๋ฌธ์ œ์—์„œ๋„ ์ข€ ์•Œ๋ ค์คฌ์œผ๋ฉด ์ข‹๊ฒ ๋„ค..

 

๋ฌดํŠผ ์ฒ˜์Œ์— 

const fs = require("fs");
let input = fs.readFileSync('./dev/stdin').toString().trim().split("\n").map(v => v.replace("\r", ""));
let facto = 1;
for (let i = 1; i <= +input[0]; i++) {
  facto *= i;
}
let count = 0;
for (let char of [...facto.toString()].reverse()) {
  if (char === "0") count++;
  if (char !== "0") {
    break;
  }
}
console.log(count);

์ด๋ ‡๊ฒŒ ๋‹ค ๊ณฑํ•ด์„œ 0์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ ์—ˆ๋Š”๋ฐ ์™œ ์•ˆ๋˜์ง€ ํ•˜๋‹ค๊ฐ€, 

BigInt ์—ฌ์„œ ๊ทธ๋ ‡๋‹ค๋Š” ๊ฑธ ์•Œ์•˜๋‹ค. 

๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ๋“ค ๋ณด๋ฉด 5์™€ 2๊ฐ€ ๋ช‡๋ฒˆ ๋‚˜์™”๋‚˜ ์„ธ๋ณด๋˜๋ฐ... ๊ทธ ๋ฐฉ๋ฒ•์€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. 

๋ฌดํŠผ ๋ฌธ์ œ์—์„œ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜์ธ 500์„ ๋„ฃ์–ด๋ดค๋Š”๋ฐ, 

1220136825991110068701238785423046926253574342803192842192413588385845373153881997605496447502203281863013616477148203584163378722078177200480785205159329285477907571939330603772960859086270429174547882424912726344305670173270769461062802310452644218878789465754777149863494367781037644274033827365397471386477878495438489595537537990423241061271326984327745715546309977202781014561081188373709531016356324432987029563896628911658974769572087926928871281780070265174507768410719624390394322536422605234945850129918571501248706961568141625359056693423813008856249246891564126775654481886506593847951775360894005745238940335798476363944905313062323749066445048824665075946735862074637925184200459369692981022263971952597190945217823331756934581508552332820762820023402626907898342451712006207714640979456116127629145951237229913340169552363850942885592018727433795173014586357570828355780158735432768888680120399882384702151467605445407663535984174430480128938313896881639487469658817504506926365338175055478128640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n

์ด๋Ÿฐ๊ฒŒ ๋‚˜์™€๋ฒ„๋ฆผใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹

 

 

โœ… ์ •๋‹ต ์ฝ”๋“œ

const fs = require("fs");
let input = fs.readFileSync('./dev/stdin').toString().trim().split("\n").map(v => v.replace("\r", ""));
let facto = 1;
for (let i = 1; i <= +input[0]; i++) {
  facto = BigInt(facto)*BigInt(i);
}
let count = 0;
for (let char of [...facto.toString()].reverse()) {
  if (char === "0") count++;
  if (char !== "0") {
    break;
  }
}
console.log(count);

์ฐธ๊ณ ๋กœ BigInt ๋Š” BigInt ๋ผ๋ฆฌ๋งŒ ์—ฐ์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

728x90
๋ฐ˜์‘ํ˜•