- ベストアンサー
c言語のプログラム
「1」が3枚、「3」が3枚、「5」が3枚、「7」が4枚、「9」が5枚で合計18枚のカードがある。このカードを並べて6桁の数を3個作り、その3個の数の総和が「1234567」となるカードの組み合わせをすべて求めたいのですがどうすればよいか全然分かりません。 6桁の数を配列で表現し、和を求めるときに1の位から上位の桁へ順番に和が一致しているかチェックするのを、再帰呼び出しででしたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- C言語での並び替えのプログラム
A[6][5]={{"abei"}, {"aceh"}, {"adeg"}, {"aef"}, {"bcfi"}, {"bdfh"}}; と配列があるとします。 (a).A[1][5]の文字列とA[2][5]の文字列を比較して、"abceih"という組み合わせた文字列を作り、その文字列の数を出します(この場合6個)。次に、A[3][5]のA[4][5]を比較して組み合わせて文字列を作り、その文字列の数を出します。A[5][5]とA[6][5]も同じように比較して組み合わせて文字列を作り、その文字列の数を出し、最後にそのすべての数の和を出します。 (b).この配列を並べ変えて(a)をします。 並び替え方は配列6個のとき 1.(1)(2)(3)(4)(5)(6) 2.(1)(2)(3)(5)(4)(6) 3.(1)(2)(3)(6)(4)(5) 4.(1)(3)(2)(4)(5)(6) 5.(1)(3)(2)(5)(4)(6) 6.(1)(3)(2)(6)(4)(5) 7.(1)(4)(2)(3)(5)(6) 8.(1)(4)(2)(5)(3)(6) 9.(1)(4)(2)(6)(3)(5) 10.(1)(5)(2)(3)(4)(6) 11.(1)(5)(2)(4)(3)(6) 12.(1)(5)(2)(6)(3)(4) 13.(1)(6)(2)(3)(4)(5) 14.(1)(6)(2)(4)(3)(5) 15.(1)(6)(2)(5)(3)(4) の15通りになります。 この配列の並びを前から配列を2つずつ取り出して比較すれば全組み合わせが完了したことになります。 この15通りの組み合わせの中で総和が一番少なくなる組み合わせ方を探すプログラムを作りたいのです。 そしてこのとき、配列が最大で40個までとなることがあるとするとその並べ替えのプログラムはどうなるでしょうか? 比較するプログラムは作ることに成功しましたが並べ替えのプログラムがうまく作れません誰か教えていただけないでしょうか?
- ベストアンサー
- C・C++・C#
- C言語のプログラムについて
C言語のプログラムについて 3桁の自然数の中で、自分自身を含めた約数が奇数になるものがいくつあるかを求めるプログラムを作りたいのですが、swich文を使って、6通りの方法で出そうとしていまして、 while 文、 for文、 do while文に加え、 for文のを、1つの関数として独立させたもの、 さらに、for文のを重ループ部分のそれぞれのループに対応して、2つの関数として独立させたもの、 そして、この2つの関数のどちらともをループを用いずに再帰呼び出しを用いたもの の6通りで出したいのですが、swich文を使うところは自力でできたのですが、あとの6つそれぞれのプログラムの組み方がわかりません。 教えていただけないでしょうか?ややこしい書き方をしてすいません・・・。
- 締切済み
- C・C++・C#
- C言語の質問。
課題が出たのですがよくわからないので回答していただける方お願いします。 # 次のようにキーボードから4桁の10進数の入力を2回受付ける. Input the 1st value > 6479 Input the 2nd value > 1497 但し,4桁の各位の数は必ず互いに異なるものが入力されるとする. # 入力された数値に対して,以下に定義する「ヒット数」と「ホームラン数」を求める. * ホームラン数: 二つの数字を同じ位ごとに比較した時,何ヶ所の位について一致しているかを表す. * ヒット数: 二つの数字を異なる位同士で比較した時,一致している組み合わせの数を表す. 例 1234と1234の場合,0ヒット4ホームラン 1234と4321の場合,4ヒット0ホームラン 6479と1497の場合,2ヒット1ホームラン # ヒット数とホームラン数を次のように表示する. 2 hit(s) 1 home run(s)
- 締切済み
- C・C++・C#
- 整数問題/2ケタの整数を2個ずつ作る
以下の問題です。 -------------------------------------- 1~9の数字が書かれた9枚のカードがあります。 今,A君がまず2枚のカードを取り,十の位の数が一の位の数より大きくなるように並べて2ケタの数を作り,さらに2枚のカードを取り,十の位の数が一の位の数より大きくなるように並べて2ケタの数を作ります。こうして,A君は2ケタの数を2つ作ります。 次に,B君が残りの5枚のカードからA君と同様に2ケタの数を2つ作ります。 A君が作った2つの2ケタの数の和とB君が作った2つの2ケタの数の和が同じになったとき,和は全部で何通り考えられますか。 --------------------------------------------- [1]のカードを使わない場合は,繰り上がりがないので数えやすいのですが(6通り), その他の場合は,繰り上がりがないことの証明はどうしたらいいのでしょうか。 お力をお貸しください。
- 締切済み
- 数学・算数
- 合計が決まった数で、数の組み合わせを求めるには
ちょっと数学的な問題を、パソコンで解きたいと思います。 合計が決まった数で、ある数の集まりの中からその和の組み合わせを求めたいのですが、何を使ってどのようにすればよいでしょうか。 ソフトは、Excel/Access/FileMakerがあります。 回答でなくても、自分ならこうやるよ、という意見も大歓迎です。 よろしくお願いします。 (例題) {2550,1210,90150,110223,17112,142816,87442,14650,1701413,11788,4460,24180}の中で総和が1949096になる数の組み合わせは?
- ベストアンサー
- その他(インターネット・Webサービス)
- *皆さん、この数字パズルの効率のいい解き方を教えてください*
すみません、さっきの質問で回答者様からご指摘をいただいたので修正しました。 問題)1、2、3、4、5、6、7、8、9のカードを使って3桁+3桁+3桁=3桁の足し算で答えの数字が最大になる式を答えてください。※答えはカードを使わなくてOKです。 この問題、答えはいくつかあると思います。 数学が全くダメな自分なりに考えて解き方を見つけてはみたのですが、どうももっと効率のいい解き方があるような気がして仕方ありません。 どうかみなさんの力を貸してください。 答えの例をひとつとあなたの解いた解きかたを書いてほしいです。 特に解き方を詳しくお願いします。 回答していただいた方には気づき次第全員にお返事します。 自己流で出した一例)152+368+479=999 解き方)答えが三桁より1000を超えてはいけないので左辺の式の百の位の合計が10を超えないようにする。また、合計が9になると十の位以下を考えるとき続かなくなるので9もダメ。 よって百の位の合計が8以下になるようにする。 合計が8以下になるのは1、2、3、4、5の中から3つ選び出して組み合わせたときのみ。ここでは小さいほうから使って1、3、4を百の位に使う。 ここで1000を超えない最大の整数は999です。 次に百の位をいったん置いといて考えます。十の位、一の位の2桁+2桁+2桁の足し算は999-800=199で、2桁+2桁+2桁=199に一番近づくようにすればいいので、百の位で使った以外のカードを組み合わせて52+68+79=199という組み合わせを作ります。 最初の百の位で使ったカードとこれをくっつっけて 152+368+479=999を出す。
- ベストアンサー
- 数学・算数