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

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

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

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

Q&A

解決済

4回答

370閲覧

7の倍数かつ11の倍数の条件処理と整数77の条件処理を使わないで、x7x11の出力の仕方

退会済みユーザー

退会済みユーザー

総合スコア0

Perl

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

0グッド

0クリップ

投稿2018/10/30 16:41

個人で学習しているものなのですが、

内容が、
整数nとします
7の倍数であればx7
11の倍数であればx11
それ以外のnは整数で出力をするようなことをしています。
条件としては、7の倍数かつ11の倍数のif分と整数77の比較をなしという条件でやっております。

この場合、整数77をx7x11に出力したいのですが、条件式にどう書けばよろしいでしょうか?
ご教示のほど、よろしくお願いいたします。

use strict; use warnings; my $n = 1; while($n <= 100){ if(〇〇 == 0){ print "x7x11\n"; } elsif(($n % 7) == 0){ print "x7\n"; } elsif(($n % 11) == 0){ print "x11\n"; } else{ print $n."\n"; } $n++; }

といった構文です。
〇〇になっているところ含め間違えている場所があれば指摘など頂けると幸いです。

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

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

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

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

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

otn

2018/10/30 23:51

「7の倍数かつ11の倍数のif分と整数77の比較をなしという条件」は、どういう意味ですか?
退会済みユーザー

退会済みユーザー

2018/10/31 00:35

すみません。多分言葉足らずで。条件回数を減らして処理をするため、7の倍数かつ11の倍数の条件処理を使わないで行うことと整数77で比較をなしということは、整数77でやるとすぐにできるのですが、別のやり方があるのではないかということです。
guest

回答4

0

77で割り切れるか否かを最初の条件にすればいいのでは?

投稿2018/10/30 18:11

KojiDoi

総合スコア13669

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

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

退会済みユーザー

退会済みユーザー

2018/10/31 00:24

ありがとうございます。 それをコードにするにはなんて書けばよろしいでしょうか?
guest

0

こんな漢字で、

bash

1$ seq 100|perl -lpe'$_=(x7)[$_%7].(x11)[$_%11]||$_' 21 32 43 54 65 76 8x7 98 109 1110 12x11 1312 1413 15x7 1615 1716 1817 1918 2019 2120 22x7 23x11 2423 2524 2625 2726 2827 29x7 3029 3130 3231 3332 34x11 3534 36x7 3736 3837 3938 4039 4140 4241 43x7 4443 45x11 4645 4746 4847 4948 50x7 5150 5251 5352 5453 5554 56x11 57x7 5857 5958 6059 6160 6261 6362 64x7 6564 6665 67x11 6867 6968 7069 71x7 7271 7372 7473 7574 7675 7776 78x7x11 7978 8079 8180 8281 8382 8483 85x7 8685 8786 8887 89x11 9089 9190 92x7 9392 9493 9594 9695 9796 9897 99x7 100x11 101100

投稿2018/10/30 20:21

編集2018/10/30 20:35
hichon

総合スコア5737

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

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

退会済みユーザー

退会済みユーザー

2018/10/31 00:40

ありがとうございます。 僕がやっているものがPerlですので。
hichon

2018/10/31 03:03

Perlだけなら以下でいけます。 つperl -e'print+(x7)[$_%7].(x11)[$_%11]||$_,$/for 1..100'
退会済みユーザー

退会済みユーザー

2018/10/31 05:02

ありがとうございます。
guest

0

ベストアンサー

これでいかがでしょうか。

Perl

1use strict; 2use warnings; 3 4my $n = 1; 5while($n <= 100){ 6 if(($n %7 == 0) && ($n % 11 == 0)){ 7 print "x7x11\n"; 8 } 9 elsif(($n % 7) == 0){ 10 print "x7\n"; 11 } 12 elsif(($n % 11) == 0){ 13 print "x11\n"; 14 } 15 else{ 16 print $n."\n"; 17 } 18 $n++; 19} 20

投稿2018/10/31 01:05

tatsu99

総合スコア5424

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

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

退会済みユーザー

退会済みユーザー

2018/10/31 01:09

ありがとうございます。 そちらの方法で行ってみます。
otn

2018/10/31 05:42

> 7の倍数かつ11の倍数の条件処理を使わないで行う のでは?
tatsu99

2018/10/31 05:47

>条件としては、7の倍数かつ11の倍数のif分と整数77の比較をなしという条件でやっております。 7の倍数かつ11の倍数のif文は使っても良いが、整数77の比較はしない、というように解釈しました。
otn

2018/10/31 06:16

うーん、やっぱり質問者の言う事がよく分かりませんよね。 で、コメントで聞いてみたのですが、 > 7の倍数かつ11の倍数の条件処理を使わないで行う という回答なので。
tatsu99

2018/10/31 06:23

>> 7の倍数かつ11の倍数の条件処理を使わないで行う >という回答なので。 うーむ。たしかに、その回答だと、「7の倍数かつ11の倍数の条件処理を使わない」ことが条件であるように受け取れますね。
guest

0

(($n % 7) == 0)&&(($n % 11) == 0)

投稿2018/10/31 00:03

y_waiwai

総合スコア87719

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

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

退会済みユーザー

退会済みユーザー

2018/10/31 00:34

ありがとうございます。 これって構文エラーになりませんか?
y_waiwai

2018/10/31 00:36

エラーが出たならエラーメッセージを提示しましょう
退会済みユーザー

退会済みユーザー

2018/10/31 00:52

すみません。入れ忘れてました。 Execution of ./課題名.pl aborted due to compolation errors. です。 これでわかりますでしょうか?
退会済みユーザー

退会済みユーザー

2018/10/31 01:07

すみません。その構文で見たら通りました。 お騒がせ致しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問