dポイントプレゼントキャンペーン実施中!

一行(値の計算をひとつ)で
あらわせますか??

時計を思い出してもらうとわかりやすいとおもいますけど、
例えば
2と5なら距離は3
1と3なら2
1と11 なら2
のようなけいさんは

min(abs(i-j), abs(12-abs(i-j))
のようにできますけど、私は環状リストのようにmod がさいしょにおもいだして
それで結局それはつかえないようでした。

A 回答 (5件)

「どっちか近い方」という判断がいるので、modだけでは無理だと思います。


JavaScriptだと、
function foo(x,y){
const z = Math.abs(x-y) % 12;
return Math.min(z, 12-z);
}
    • good
    • 1
この回答へのお礼

ありがとう

なるほど?

お礼日時:2024/05/18 16:16

無理だと思いますが、ほとんどの言語で、条件分岐は三項演算子という式で表せますから、単に半分を超えたら最大値から引けばいいと思います。



てかこう言う意味のある式は関数にすべきに思うので、ひとつの文で表そうという発想がナンセンスな気がします。
    • good
    • 0
この回答へのお礼

つらい・・・

はい。ごめんなさい。

お礼日時:2024/05/18 16:15

No3ですが、質問の意図を勘違いしてNo3の回答していました。

なので、無視してください。
    • good
    • 0
この回答へのお礼

大丈夫です :)

お礼日時:2024/05/18 16:15

時計の例であれば、



min(abs(i-j), min(i, j)+12-max(i, j))

でしょうか
    • good
    • 0
この回答へのお礼

ありがとう

お礼日時:2024/05/18 16:15

「一行」や「値の計算をひとつ」の意味がわからない. 言葉で定義してほしい.



あと mod の定義も必要かな.
    • good
    • 0
この回答へのお礼

おばかなの?

お礼日時:2024/05/18 16:16

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A