- 締切済み
西暦の下2桁をたして・・・
初心者です。 カウンターを設置した経験だけです。 西暦の下2桁をたしてその和が1桁になるようにして Aだったら 10をひくその数字 Bだったら 5をたすその数字 がでるようにしたいのです。 本を読んでなにか似た例がないかと捜したのですが まったくわかりません。 たとえば 1974だと 7+4=11 で 1+1=2 で ここで Aだと 10-2=8 Bだと 5+2=7 アドバイス や 参考になるサイトをご存知でしたら 教えてください。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#2>4桁の数字は色々かわるのですが・・ その変わる部分を >$ad=1974; でいうところの$ad に当てはめれば良いです。 1974と決めているのは、どっからどう持ってくるのか回答側にはわからないためです。 #3>…が青色ででました。なにか意味があるのでしょうか。 おそらく、エディタで何らかの認識を表すんでしょうが、私はそのエディタについて知りませんし、わかりません。 #以降の部分は、Perl ではコメント(実行されない部分)になります。 >#print 'input "A" or "B">'; >#chomp( $cond=<STDIN>); の部分も 質問文中の >Aだったら… >Bだったら… の部分がどうなっているか分からない部分を補うものですので、 実際のものと置き換えて下さい。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#2> while($n>10){ は、 while($n>=10){ の間違いでしたorz
お礼
ありがとうございます。 今エディターにコピーをはりつけましたら 全体は黒字なんですが その内の 4行目($n>=10)の >が青色 7行目">' の >が青色 8行目<STDIN>が青色ででました。 なにか意味があるのでしょうか。 また おすすめ参考サイトがございましたら 教えてください。 お忙しいと思いますが よろしくお願いいたします。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#Perl? $ad=1974; $n=$ad % 100; #下2桁 while($n>10){ $n = int($n/10) + ($n % 10); } #print 'input "A" or "B">'; #chomp( $cond=<STDIN>); if( $cond eq 'A'){ print 10 - $n ."\n"; } elsif ( $cond eq 'B') { print 5 + $n ."\n"; } else { print "$cond は条件として想定外\n"; }
お礼
ありがとうございます。 とてもむずかしそうですが がんばります。 4桁の数字は色々かわるのですが・・貼り付けてみます。
- SHOO-3
- ベストアンサー率56% (28/50)
とりあえず、「正規表現」か、余剰(演算子%)や除算(割り算・演算子/)を使う方法が思いつきます。 例)正規表現をつかってみる $y = 2006; $y =~ m/\d\d(\d)(\d)/; $a = $1; $b = $2; これで$aと$bに、それぞれ下2桁が取り出せます。
- 参考URL:
- http://www.google.co.jp/
お礼
ありがとうございます。 下2桁をとりだす式 とても参考になります。
お礼
お返事ありがとうございます。 完成するように頑張ります。