MDNHIE授業C:4桁のカプレカ数を再現してみるC言語初級TwitterFacebookはてブPocketLINE2020.01.28スポンサーリンクカプレカ数というのをご存じですか?わたしはつい最近まで知りませんでした(笑)数学に疎いもので...カプレカ数の定義は2つあります。Number)とは、次のいずれかで定義される整数である。1.2乗して前の部分と後ろの部分に分けて和を取ったとき、元の値に等しくなるもの。2.桁を並べ替えて最大にしたものから最小にしたものの差を取ったとき、元の値に等しくなるもの。カプレカ数カプレカ数は、上記の定義2の方が有名です。実行イメージカプレカ数についてカプレカ数を例としてあげると...最初の数が、4019だったとします。この4つの数字を並べ替えて最大値と最小値を作ります。0149(この場合先頭が0なので149とします)最大値から最小値を引きます。9261計算で出た9261を再度元の値として、同じように最大値、最小値に分け計算をしていきます。6174::おやおや?何か気づきませんか?このまま6174が続いていきますね。これがカプレカ数です。(わたしも最近知ったので偉そうに言えないですが...)4桁は必ずこの6174に収束するのです。(ちなみに3桁だと495となる)処理の流れ次のような流れで考えました。「6174」が2回連続して再現されるまで繰り返すC言語で作ってみる以上の流れをC言語に直すとそれぞれこうなります。して48を足すことでASCIIコード文字として数値文字を保存している点です。その方が最大値と最小値への数値並べ替えがしやすいと考えました。work;}}}隣り合う配列の数値文字を比較して降順(最大値用)と昇順(最小値用)に並べ替えています。バブルソートというアルゴリズムです。atoi(min);最大値-最小値を求めます。iMin;求めた数値を使って再度最大値と最小値を求めるあとは1回目に求めた数値を元に、2~3の繰り返しです。最大値と最小値に再度数値並べ替えをするために、一旦数値化した数を数値文字に直しておきます。kaprekar);「6174」が2回連続して再現されるまで繰り返す前回の計算結果をsaveKaprekarという変数に保存しておき、同じだったら計算ループを抜けています。変数saveKaprekar初期値の-1は適当な数です。kaprekar;:}ソースコード全体ソースコード全体を示します。3とすれば計算できます。何桁でもOKというわけではないので(カプレカ数の性質上)よく調べて変えてみてください。コメントをキャンセルメールアドレスが公開されることはありません。コメント名前メールアドレスサイト上に表示された文字を入力してください。ホームC言語初級スポンサーリンクこの記事を書いている人dennou好きな食べ物はトマトです。学生時代は授業中よく寝ていました。このサイトがお役に立てばうれしいです。views2017.10.212017.11.16VS2017:「既定の証明書を作成できませんでした。マテリアル最近のコメントdennou2020.01.28管理人です。CompilerでC言語開発するのも手です。文字化けを気にせず使えますし。...Windows10のgccでUTF8で作ったコードが文字化けする場合の対処taken2020.01.27とても参考になりました。やって直すか手をこまねいていたので助かりました。Windows10のgccでUTF8で作ったコードが文字化けする場合の対処dennou2019.10.24管理人です。?Windows10で最初にUnityを起動したときのセキュリティ警告dennou2019.09.26管理人です。ありがとうございます。お役に立てて良かったです。確かにセキュリティに関する警告は最初見た時ギョッとしますよね。MDNHIE授業ホーム検索トップサイドバースポンサーリンクこの記事を書いている人dennou好きな食べ物はトマトです。学生時代は授業中よく寝ていました。このサイトがお役に立てばうれしいです。views2017.10.212017.11.16VS2017:「既定の証明書を作成できませんでした。マテリアル最近のコメントdennou2020.01.28管理人です。CompilerでC言語開発するのも手です。文字化けを気にせず使えますし。...Windows10のgccでUTF8で作ったコードが文字化けする場合の対処taken2020.01.27とても参考になりました。やって直すか手をこまねいていたので助かりました。Windows10のgccでUTF8で作ったコードが文字化けする場合の対処dennou2019.10.24管理人です。?Windows10で最初にUnityを起動したときのセキュリティ警告dennou2019.09.26管理人です。ありがとうございます。お役に立てて良かったです。確かにセキュリティに関する警告は最初見た時ギョッとしますよね。29スポンサーリンク。