![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
2つの変数x,targetを入力として受け取る。(二つとも0.0〜360までの値とする)
これらの変数は、円周上にある位置を表すもので、xは現在地、targetはこれから移動したい場所を示す。
その際、右回りと左回りどちらでも移動出来るが、出来るだけ小さい値にしたい。どっち回転で、何度移動すれば良いか出力する。
入力値の例
20.2 200.3
入力値の例 1 のときに期待される出力 左に 179.89999999999998 度、回転します
以下の条件をみたすプログラムをjavaで書くには、どのようにすれば良いですか。
何回やってもうまくいかないです
一度模範解答が見れたら次から頑張れると思います
よろしくお願いします
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
何か右回りと左回りが逆なような気がするんだが・・・・・・。
ま、いっか。
> これらの変数は、円周上にある位置を表すもので
数学的に言うと、平面上の点は必ず2つの数の組で表されるのは中学校数学以降お馴染みですね。
この問題の場合、「円周上にある位置を表す」を言う縛りがあるので、極座標
(r, θ)
のrは所与である、と解されて、徹頭徹尾角度θ(問題の場合、xとtarget)だけに拘っています。
そうすると、円周上の任意の点へ「回転」する場合、正方向と負方向として
target - x
-360+target-x
の2つが候補として出てきます。ぶっちゃけそれだけ、ですね。
// ここから
import java.util.Scanner;
class Main {
public static void main(String[] arg) {
Scanner scan = new Scanner(System.in);
double x, target, right, left;
while (true) {
x = scan.nextDouble();
target = scan.nextDouble();
if ((x < 0.0) || (x > 360) || (target < 0.0) || (target > 360)) {
continue;
} else {
break;
}
}
right = Math.abs(target - x);
left = Math.abs(-360 + target - x);
if (right < left) {
System.out.println("右に " + right + " 度、回転します");
} else {
System.out.println("左に " + left + " 度、回転します");
}
}
}
No.1
- 回答日時:
「以下の条件」ってなんでしょうか.
と突っ込んでおいて, と.
「何回やってもうまくいかない」ってことは, 当然「何回かやってる」んだよね? では, 例えばどのようにやってどのように「うまくいかない」んですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- 工学 三相誘導電動機の比例推移に関する問題です。 定格出力200kW、4極、50Hzの巻線形三相誘導電動機 1 2023/05/28 12:29
- Visual Basic(VBA) 【マクロ】表への繰り返し転記について 1 2022/11/19 16:30
- Visual Basic(VBA) 空白のセルを変更しようとした時(アクティブセル)に インプットボックスを5回出す インプットボックス 1 2023/03/14 11:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数字文字列をパック10進数に変...
-
System.err. printlnとSystem.o...
-
Log4jで機能毎に別ファイルへ出...
-
JSPでのmysql操作(count)
-
行列の表示
-
javaのwhile文で九九の表
-
flush()とclose()について
-
ArrayListによる計算表作成
-
verilog 符号付加減算(最上位...
-
System.out.printlnの意味がよ...
-
ダブルクォーテーション(””)...
-
Javascript で、0000 から 9999...
-
log4jのログ出力先について
-
1~100までの数字を表示し、か...
-
InputStreamはreadが1回しかで...
-
Pythonプログラムのエラー
-
ジャバスクリプトについて。
-
Javaでの改行コード
-
OutputStreamの内容を確認する...
-
Javaで改行などが出来ないのです。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.err. printlnとSystem.o...
-
Javaで改行などが出来ないのです。
-
flush()とclose()について
-
Log4jで機能毎に別ファイルへ出...
-
System.out.printlnの出力先
-
1~100までの数字を表示し、か...
-
Eclipseのコンソールを常に表示...
-
system.out.printが出力されない
-
JAVAのServletで、画像表示につ...
-
1~100までの数字を表示したい
-
テキストエリアで改行する
-
switch分が機能しません。
-
Tomcatが無応答となる現象が起...
-
一定のスペースを空けて端を揃...
-
数字文字列をパック10進数に変...
-
JavaScriptの変数をjavaのメソ...
-
バイトスワップ
-
tomcatのstdout.logを停止したい。
-
Java 九九の表について
-
ダブルクォーテーション(””)...
おすすめ情報