[Swift]Baekjun 2004-組合せ0の個数
2855 ワード
質問リンク
大学入試は遠いので、組み合わせが何なのか覚えていません.
ここのncrコンビネーション! コンビネーションは工場で構成されているからです.
以前のfactorial 0の個数を少し変えました!
入力数がn,mの場合(n>m)
(n-m)nの5,5^2,5^3...個数を求める
1から(n-m)までの5,5^2,5^3...数を求めて抜きたい
しかし、エラーが発生し続けています...
だから考えてみると、事実0の個数の前提は
「2はいつも5より大きい」ここで漏れたのは本当ではないかもしれない.
そこで今回は、2つの数と5つの数を求めて、2つの中でもっと少ないものを印刷することにしました.
テストボックスが正常に開いてタイムアウトしました.
だからそれぞれ2または5に分かれた値を加算しないで、5,25125...
大学入試は遠いので、組み合わせが何なのか覚えていません.
以前のfactorial 0の個数を少し変えました!
入力数がn,mの場合(n>m)
(n-m)nの5,5^2,5^3...個数を求める
1から(n-m)までの5,5^2,5^3...数を求めて抜きたい
しかし、エラーが発生し続けています...
だから考えてみると、事実0の個数の前提は
「2はいつも5より大きい」ここで漏れたのは本当ではないかもしれない.
そこで今回は、2つの数と5つの数を求めて、2つの中でもっと少ないものを印刷することにしました.
初期プール(残りタイムアウト)
import Foundation
let nums = readLine()!.split(separator: " ").map{Int(String($0))!}
let n = nums[0]
let m = nums[1]
func get2(_ num: Int) -> Int {
var count = 0
for i in 1..<num+1 {
var temp = i
while temp>0,temp%2==0 {
count += 1
temp /= 2
}
}
return count
}
func get5(_ num: Int) -> Int {
var count = 0
for i in 1..<num+1 {
var temp = i
while temp>0,temp%5==0 {
count += 1
temp /= 5
}
}
return count
}
let a = get2(n) - (get2(m)+get2(n-m))
let b = get5(n) - (get5(m)+get5(n-m))
print(a>b ? b : a)
だからそれぞれ2または5に分かれた値を加算しないで、5,25125...
最終回答
import Foundation
let nums = readLine()!.split(separator: " ").map{Int(String($0))!}
let n = nums[0]
let m = nums[1]
func get2(_ num: Int) -> Int {
var count = 0
var i = 2
while num >= i {
count += num/i
i *= 2
}
return count
}
func get5(_ num: Int) -> Int {
var count = 0
var i = 5
while num >= i {
count += num/i
i *= 5
}
return count
}
let a = get2(n) - (get2(m)+get2(n-m))
let b = get5(n) - (get5(m)+get5(n-m))
print(a>b ? b : a)
このように交換すれば通過できます(やれやれ…)Reference
この問題について([Swift]Baekjun 2004-組合せ0の個数), 我々は、より多くの情報をここで見つけました https://velog.io/@sun02/Swift-백준-2004-조합-0의-개수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol