Dies ist eine ziemlich einfache Frage. Nach dieser zufälligen Website, die ich gefunden habe - Web Archive , ist ein Bezugswinkel the acute angle formed by the terminal side of the given angle and the x-axis.
Sie müssen ein Programm schreiben, um diese zu finden.
Ich erinnere mich an nichts aus Algebra 2, was bedeutet das?
Winkel werden normalerweise in Standardform angegeben , die gemessen wird, indem eine Seite des Winkels platziert und zur anderen Seite entgegen dem Uhrzeigersinn gemessen wird.
Dies wird Ihre Eingabe sein. Ihre Ausgabe wird der Referenzwinkel davon sein. Sie können sich dies als den kleinsten Abstand von der Klemmenseite zur x-Achse vorstellen. Es ist nur ein Winkel, keine Distanz. Hier sind einige Beispiele:
Klarstellungen
- Alle Standardeinstellungen für Eingaben und Übermittlungen.
- Winkel ist in Grad .
- Negative Winkel, nicht ganzzahlige Winkel und Winkel> 360 ° sind zulässig.
- Ausgabe in Form
60 deg
. - Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes!
Ein weiterer hilfreicher Link .
Testfälle
70 -> 70 deg
135 -> 45 deg
210 -> 30 deg
-60 -> 60 deg
91 -> 89 deg
610 -> 70 deg
-1000 -> 80 deg
abs(arcsin(sin(input)))+" deg"
, obwohl ich nicht weiß, welche Sprache gewinnen würde (es müsste Grade und Zeichenkettenoperationen unterstützen).Antworten:
Pyth, 17 Bytes
Zufälligerweise entspricht dies der Antwort von @ xnor .
Probieren Sie es online aus.
quelle
Pyth, 18 Bytes
Probieren Sie es online aus.
quelle
Python 2, 34 Bytes
Die Verwendung der
"%d deg"
Zeichenfolgenformatierung würde aufgrund der erforderlichen Klammern länger dauern.quelle
CJam (21 Bytes)
Online-Demo
quelle
dc, 25
Hinweis
dc
wird_
anstelle von als -ve-Zeichen verwendet-
.Testausgang:
quelle
Mathematica,
2231quelle
deg
,0 deg
wird es werden0
.Row@{Abs@Mod[#,180,-90],deg}&
Python 2, 35
Der kleinere Winkel und sein negatives Modulo
180
. Wandelt den Winkel effektiv in einen Bereich von 0 bis 180 um und berechnet den Abstand zum näheren Endpunkt. Beachten Sie, dass-x%180
Gruppen als(-x)%180
.Gleiche Länge mit String-Formatierung für Python 3:
quelle
Pyth
2530 BytesSchmerzhaft unkreative Lösung mit Triggerfunktionen. Permalink
Anregungen willkommen.
quelle
.t
Anrufe entgegengenommen und zusammengefaltet haben:+.R.t.a.tF[Q7Z3)6?%Q1Q0" deg
90.5 => 90.0 deg
, though.-60.5 => 60.5 deg
aber mit60.5 => 60.0 deg
. Sieht aus wie ein Problem mit Pyth - Beispiel mit pyth / macros.pyJavaScript (ES6), 43 Byte
Ähnlich wie die Antwort von Sp3000 , obwohl das Modulo aufgrund des Verhaltens in JavaScript ziemlich langwierig ist .
Demo
Code wird in ES5 aus Gründen der Browserkompatibilität neu geschrieben:
CoffeeScript, 45 Bytes
quelle
%
sinnvoll implementiert werden .(t=180)
Ersetzen der folgenden 180 durch t würde wahrscheinlich ein paar Bytes sparenJ, 26 Bytes
Das gleiche wie xnor Methode .
quelle
Matlab, 44
Verwenden einer anonymen Funktion:
Beispiel:
quelle
Scala,
4035 Zeichenquelle
Tcl , 83 Bytes
Probieren Sie es online!
quelle
PHP, 44 Bytes
Nimmt einen Befehlszeilenparameter an. Wieder leidet PHP unter dem gleichen Problem wie JavaScript .
Für die Verwendung der kanonischen Lösung sind 53 Byte erforderlich (die Umrechnung von Grad und Bogenmaß erfordert viele Zeichen):
quelle
.
zur Verkettung verwendet?.
. Abgestimmt, bis es behoben ist