[解決済み] Swift言語で整数のべき乗を取得する方法は?
2022-02-05 16:42:31
質問
最近swiftを勉強しているのですが、基本的な問題で答えが見つからないことがあります。
のようなものを取得したいのですが
var a:Int = 3
var b:Int = 3
println( pow(a,b) ) // 27
しかし、pow関数はdouble数に対してのみ動作し、integerに対しては動作せず、Double(a)やa.double()のようなものでintをdoubleにキャストすることさえできない...。
なぜ整数の累乗を返さないのでしょうか? そして、なぜ整数をdoubleにキャストできないかというと、3を3.0(または3.00000...)に変えるだけだからです。
2つの整数があるとき、べき乗の演算をしたい場合、どうすればスムーズにできますか?
ありがとうございます。
解決方法は?
もしよろしければ
infix
operator
を行うことです。
// Put this at file level anywhere in your project
infix operator ^^ { associativity left precedence 160 }
func ^^ (radix: Int, power: Int) -> Int {
return Int(pow(Double(radix), Double(power)))
}
// ...
// Then you can do this...
let i = 2 ^^ 3
// ... or
println("2³ = \(2 ^^ 3)") // Prints 2³ = 8
キャレットを2つ使ったので、今でも XOR演算子 .
Swift 3に対応したアップデート
Swift 3では「マジックナンバー」。
precedence
は次のように置き換えられます。
precedencegroups
:
precedencegroup PowerPrecedence { higherThan: MultiplicationPrecedence }
infix operator ^^ : PowerPrecedence
func ^^ (radix: Int, power: Int) -> Int {
return Int(pow(Double(radix), Double(power)))
}
// ...
// Then you can do this...
let i2 = 2 ^^ 3
// ... or
print("2³ = \(2 ^^ 3)") // Prints 2³ = 8
関連
-
警告: 代入がキャストエラーなしに整数からポインタを作成します。
-
[解決済み] Swift言語におけるエクスクラメーションマークの意味とは?
-
[解決済み] JavaScriptで文字列を整数に変換する方法は?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftでindexとelementでループを反復させる方法
-
[解決済み] 文字列の長さを取得する
-
[解決済み] Swiftで乱数を生成する方法とは?
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] プログラミング言語Swiftで文字列のn文字目を取得する
-
[解決済み] Swift で app delegate への参照を取得するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン