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
๋ฐ์ํ
'ํ์ ๊ณต๋ถ > ๐ซง ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌธ์์ด ๋ด p์ y์ ๊ฐ์ (0) | 2024.09.05 |
---|---|
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ๋๋ง์ ์ํธ (1) | 2023.11.30 |
[์๊ณ ๋ฆฌ์ฆ || ๋ฐฑ์ค] 10250 ACM ํธํ JS (1) | 2023.10.06 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (0) | 2023.09.28 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] 3์ง๋ฒ ๋ค์ง๊ธฐ (0) | 2023.09.12 |