• 締切済み

西暦の下2桁をたして・・・

初心者です。 カウンターを設置した経験だけです。 西暦の下2桁をたしてその和が1桁になるようにして Aだったら 10をひくその数字 Bだったら 5をたすその数字 がでるようにしたいのです。 本を読んでなにか似た例がないかと捜したのですが まったくわかりません。 たとえば 1974だと 7+4=11 で 1+1=2 で ここで Aだと 10-2=8       Bだと  5+2=7 アドバイス や 参考になるサイトをご存知でしたら 教えてください。 よろしくお願いします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

#2>4桁の数字は色々かわるのですが・・ その変わる部分を >$ad=1974; でいうところの$ad に当てはめれば良いです。 1974と決めているのは、どっからどう持ってくるのか回答側にはわからないためです。 #3>…が青色ででました。なにか意味があるのでしょうか。 おそらく、エディタで何らかの認識を表すんでしょうが、私はそのエディタについて知りませんし、わかりません。 #以降の部分は、Perl ではコメント(実行されない部分)になります。 >#print 'input "A" or "B">'; >#chomp( $cond=<STDIN>); の部分も 質問文中の >Aだったら… >Bだったら… の部分がどうなっているか分からない部分を補うものですので、 実際のものと置き換えて下さい。

noname#34227
質問者

お礼

お返事ありがとうございます。 完成するように頑張ります。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2> while($n>10){ は、 while($n>=10){ の間違いでしたorz

noname#34227
質問者

お礼

ありがとうございます。 今エディターにコピーをはりつけましたら 全体は黒字なんですが その内の 4行目($n>=10)の >が青色 7行目">'  の >が青色 8行目<STDIN>が青色ででました。 なにか意味があるのでしょうか。 また おすすめ参考サイトがございましたら 教えてください。 お忙しいと思いますが よろしくお願いいたします。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#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"; }

noname#34227
質問者

お礼

ありがとうございます。 とてもむずかしそうですが がんばります。 4桁の数字は色々かわるのですが・・貼り付けてみます。

  • SHOO-3
  • ベストアンサー率56% (28/50)
回答No.1

とりあえず、「正規表現」か、余剰(演算子%)や除算(割り算・演算子/)を使う方法が思いつきます。 例)正規表現をつかってみる $y = 2006; $y =~ m/\d\d(\d)(\d)/; $a = $1; $b = $2; これで$aと$bに、それぞれ下2桁が取り出せます。

参考URL:
http://www.google.co.jp/
noname#34227
質問者

お礼

ありがとうございます。 下2桁をとりだす式 とても参考になります。