コードテスト練習04:[プログラマー]最大公倍数と最小公倍数
ソース:プログラマ
使用言語:JavaScript
イニシャルコード
function solution(n, m) {
var answer = [];
return answer;
}
私が書いたコード
function solution(n, m) {
var answer = [];
if(n<m){
if(m%n!==0){
answer[0]=1;
answer[1]=n*m;
}else{
answer[0]=n;
answer[1]=m;
}
}else if(m<n){
if(n%m!==0){
answer[0]=1;
answer[1]=n*m;
}
else{
answer[0]=m;
answer[1]=n;
}
}else if(n=m){
answer[0]=n;
answer[1]=n;
}
return answer;
}
の最大公約数が1でない場合、n,mの残り数が0の錯覚編成のコード、、、テストの結果、最大公約数は1ではありませんが、残りも0ではない組み合わせがたくさんあります・・・
これは例の結果だけを見て、無知で書いたコードです......ハハハ...
検索したところ、最小公倍数を求める簡単な方法があることが分かった.ユークリッドアーク除去法!よふ…!?
ユークリッドアーク除算はMOD演算を繰り返すだけだそうです.
(MOD演算:2つの値の残存値を求める)
1230と904の最大公約数を獲得!
したがって、最大承諾数は2
最大公約数のCodeを求めます~!
function solution(a, b){
while (b > 0)
{
let tmp = a;
a = b;
b = tmp%b;
}
return a;
}
注意:リンクテキスト最大公約数は最小公倍数がわかるので入手しやすい!
2つの数を乗じて、最大公約数で割るといいです!
=>A x B=最大公約数X最小公倍数.🙂
書き換えコード
function solution(n, m) {
var answer = [];
let a=n;
let b=m;
while (m > 0){
let tmp = n;
n = m;
m = tmp%m;
}
answer[0]=n;
answer[1]=(a*b)/n
return answer;
}
ううう
他人を解く
function gcdlcm(a, b) {
var r;
for(var ab= a*b;r = a % b;a = b, b = r){}
return [b, ab/b];
}
wow....🙍 📝
for
ゲートでこのように使えるかどうか考えていますが...コメントによると、T/F条件は(r=a%b)と判別され、0が現れると
for
ゲートが終了する.なるほど、俳優俳優俳優俳優!
Reference
この問題について(コードテスト練習04:[プログラマー]最大公倍数と最小公倍数), 我々は、より多くの情報をここで見つけました https://velog.io/@gyomni/코딩테스트-연습-04-프로그래머스-최대공약수와-최소공배수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol