質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

解決済

2回答

234閲覧

Perl カップル成立のプログラミング

sasurai3601

総合スコア13

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

0クリップ

投稿2018/11/23 12:16

編集2018/11/23 12:31

Perlのプログラミングで質問です。
n人の男の子(0番からn-1番)と,n人の女の子(0番からn-1番)が合コンをする.
盛り上がって来たところで,男の子は気に入った女の子の番号を1人1個決め,女の子の方も気に入った男の子の番号を1人1個決める.
そして全員の番号を一斉に開示して,両想いだとカップル成立である.

@girl_to_boy = (4, 6, 1, 7, 3, 7, 3, 2, 4, 8);
$number_of_girls = @girl_to_boy; @boy_to_girl = (2, 7, 3, 9, 8, 7, 1, 0, 2, 1);
$number_of_boys = @boy_to_girl;

for ($i = 0; $i < $number_of_girls; $i++) {
for ($j = 0; $j < $number_of_boys; $j++) {
if (($girl_to_boy[$i] == $j) && ($boy_to_girl[$j] == $i)) {
print "couple: girl[$i] and boy[$j]\n";
}
}
}
このプログラムをforの二重ループではなく一重ループに直せという問題なのですが、分からないです。どなたか教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mather

2018/11/23 13:48

学校の課題などであれば先生に質問しましょう。また、ソースコードはMarkdownのコードブロックを使ってください。
guest

回答2

0

ベストアンサー

以下のようにしてください。

perl

1@girl_to_boy = (4, 6, 1, 7, 3, 7, 3, 2, 4, 8); 2$number_of_girls = @girl_to_boy; @boy_to_girl = (2, 7, 3, 9, 8, 7, 1, 0, 2, 1); 3$number_of_boys = @boy_to_girl; 4 5for ($i = 0; $i < $number_of_girls; $i++) { 6 $j = $girl_to_boy[$i]; 7 if ($boy_to_girl[$j] == $i){ 8 print "couple: girl[$i] and boy[$j]\n"; 9 } 10} 11

投稿2018/11/23 14:02

tatsu99

総合スコア5438

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ヒントです。

「配列の中に特定の要素が含まれるかどうか判定する関数」を使いましょう。

投稿2018/11/23 13:52

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問