プロが教えるわが家の防犯対策術!

正の整数pを10の位で切り上げてqに代入する命令を書きたいのですが、自分は
q = {(p \ 100) * 100} + 100
と考えましたが、pが100で割り切れるときになるとこれでは違う気がします。問題文には例としてpが3352ならpには3400を代入し、2500なら2500を代入するとなっています。2500の場合僕の考えた式だと2600になってしまします。どなたか教えてください。

A 回答 (7件)

>問題文には例としてpが3352ならpには3400を代入し、2500なら2500を代入するとなっています。



考え方を変えると、『pが「3352」の時は、1の位を「0」(3350に)にして、その後、pに「50」を足す』また、『pが「2500」の時は、1の位を「0」にして、その後、pに「0」を足す』と言う計算式を作ればいいのです。

「q = (p \ 100) * 100」の式を利用すれば、「p = 3352」の時は、「q = 3300」で、「p = 2500」の時は、「q = 2500」という100の位より下は切り捨てられます。

続いて、10の位以下の値を出します。
「3352」なら「3300」を引けば、「52」
「2500」なら「2500」を引けば、「0」

今度は、10の位より下を切り捨てます。
「q = (p \ 100) * 100」の式を改造して、合っていれば、「52」なら「50」、「0」なら「0」という値がでます。
あとは、式をどうするかは、考えてください。
    • good
    • 0

210→300


209→200
でいいなら、q = (p + 90) / 100 * 100 でできます。
1位の処置が曖昧な質問ですが、10未満は切り捨てでいいなら、上記
回答になります。
    • good
    • 0
この回答へのお礼

みなさん回答ありがとうございます。みなさんの意見を参考に問題を解くことができました。

お礼日時:2005/11/02 21:55

ごめんなさい。

読み違ったみたい。
十位を「切り上げ」ですか?
とすると切り替わり点は10ですね。
    • good
    • 0

ごめんなさい。

読み違ったみたい。
十位を「切り上げ」ですか?
とすると切り替わり点は10でいいのかな。
    • good
    • 0

答えに限りなく近いですが、ヒントということで。


一の位の四捨五入はこう記述します。
q = ( (p + 5) / 10 ) * 10
今は切り替わり点が50ですね。
途中演算で浮動小数を使われないように注意してください。
    • good
    • 0

No.1です。


よく読むと10の位で切り上げだから99ではなく90ですかね。
(2501なら2500でいいのですよね)
q={(p + 90) \ 100} * 100
    • good
    • 0

99を足してから100で割ってあまりを切り捨てればどうでしょう


q={(p+99)\100}*100
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!