수를 입력받아 홀수인지를 리턴
반복문(while)문을 사용해야 합니다.
for문 사용은 금지됩니다.
나눗셈(/), 나머지(%) 연산자 사용은 금지됩니다.
0은 짝수로 간주합니다.
틀린 코드
function isOdd(num) {
// TODO: 여기에 코드를 작성합니다.
let n = 0;
let result = Math.abs(num)
while(result>=0){
result = result - n
if(result===0){
return false
} else if(result!==0){
return true
}
n = n -2
}
}
//while문으로 작성
// 나누기와 %연산을 제외하고 홀수짝수를 구분할 수 있는 방법
// ex) 2,3이라는 수를 입력 받았음
// -2를 한다면 0은 짝수 / 1을 홀수
//-2 계산을 반복함
// 0은 짝수
// 입출력 예시를 보면 -8 값도 홀수 짝수를 나눠야함
100을 입력 받으면
AssertionError: expected true to equal false
-1000을 입력 받으면
AssertionError: expected true to equal false
값 리턴
흐음 ... n값을 없애고 result값에 직접적으로 -2를 넣어줌.
제일 큰 문제 100 값과 -1000값 근데 생각해보니
0을 제외한 모든값이 true값임
else if(result!==0)라고 조건을 설정하여 0을 제외한 모든 값이 -2를 반복연산하여 답에 도달하는 것이 아닌 !==0이기 때문에 바로 true값을 출력함
-변경
else if(result!==0) --> else if(result===1)
function isOdd(num) {
// TODO: 여기에 코드를 작성합니다.
let result = Math.abs(num)
while(result>=0){
if(result===0){
return false
} else if(result===1){
return true
}
result = result - 2
}
}
수를 입력받아 2부터 해당 수까지의 소수(prime number)들을 리턴
출력
string 타입을 리턴해야 합니다.
2-3-5-7의 형식으로 리턴해야 합니다.
이중 반복문(double for loop)을 사용해야 합니다.
function listPrimes(num) {
// TODO: 여기에 코드를 작성합니다.
//수 입력
//그 수까지 모든 소수를 구함
//나눠질 수(i) 와 나누기위해 필요한 수(n)
//단, 2부터 해당 수까지 구하는 것임으로
//2는 무조건 소수값이됨
//2로 나눠지는 수는 모두 소수가 아님
//3부터 판별하며 5,7,9,10 순으로 판별 +2 값 왜 why --> 짝수에는 소수가 2뿐이지만 홀수는 소수가 존재
//확인할 수는 sqrt를 사용하여 제곱근의 수의 정수까지 나눠봄
let result = "2"
for(i=3;i<=num;i=i+2){
let truth = true
let sqrt = parseInt(Math.sqrt(i))
for(n=3;n<sqrt;n=n+2){
if(i%n===0){
truth = false
break
}
}if(truth===true){
result = result + "-" + i
}
}
return result
}
흐음 ... 너무 어려움 이거 혼자 풀 수 있는 수준이 아닙니다. 바보임에 틀림이없음 !
하 sqrt에 개념을 다시 알 필요가 있음
조건문을 넣을 때 조건의 범위를 잘 설정해야할듯
for(n=3;n<sqrt;n=n+2)
----> for(n=3;n<=sqrt;n=n+2)로 변경해야 9를 받을 시 루트 9가 되고 루트 9= 3. <로 문제를 풀시 9는 true값이 되어 result값에 넣어져 잘못된 값을 출력 ! <=로 설정하고 풀어여 루트9=3/ 3은 n=3값으로 나눠져서 false값을 출력하고 result값에 포함되지 않음
function listPrimes(num) {
// TODO: 여기에 코드를 작성합니다.
//수 입력
//그 수까지 모든 소수를 구함
//나눠질 수(i) 와 나누기위해 필요한 수(n)
//단, 2부터 해당 수까지 구하는 것임으로
//2는 무조건 소수값이됨
//2로 나눠지는 수는 모두 소수가 아님
//3부터 판별하며 5,7,9,10 순으로 판별 +2 값 왜 why --> 짝수에는 소수가 2뿐이지만 홀수는 소수가 존재
//확인할 수는 sqrt를 사용하여 제곱근의 수의 정수까지 나눠봄
let result = "2"
for(i=3;i<=num;i=i+2){
let truth = true
let sqrt = parseInt(Math.sqrt(i))
for(n=3;n<=sqrt;n=n+2){
if(i%n===0){
truth = false
break
}
}
if(truth===true){
result = result + "-" + i
}
}
return result
}
문자열을 입력받아 해당 문자열에 등장하는 각 문자(letter)를 가지고 만들 수 있는 길이 2의 문자열들을 리턴
let output = makePermutations('ab');
console.log(output); // --> 'aa,ab,ba,bb'
output = makePermutations('123');
console.log(output); // --> '11,12,13,21,22,23,31,32,33'
output = makePermutations('');
console.log(output); // --> ''
function makePermutations(str) {
// TODO: 여기에 코드를 작성합니다.
let result = ""
for(i=0;i<=str.length;i= i +1){
for(n=0;n<=str.length;n= n +1){
result = result + str[i]+str[n] + ","
}
}
return result
}
// asd를 입력받을때
//반복문을 사용하여 첫번째 문자를 고정하고 두번째 문자에는 첫번째 문자를 출력합니다
// 두번째에는 첫번째 문자는 그대로 고정을 하고 두번째 문짜를 가지고 옵니다.
// 세번째에는 첫번째 문자는 고정 세번째 문자를 갖고옵니다.
//반복문 for문을 사용하여 i에 초기값을 0으로 두고 문자열의 길이만큼 반복, i는 +1만큼 상승합니다.
// 두번째 반복문 for에는 n은 0부터 문자열의 총 길이만큼 반복하면 +1만큼 상승합니다.
// 출력물은 리절트값에 넘깁니다.
//리저트값을 리턴합니다.
//
첫번째는 또 잘못된 범위값을 설정함 !
<=가 아닌 < or str.length-1로 설정해야함
왜 why ? --> 문자열은 0부터 위치를 시작함!!
또한, 출력물 마지막에 ,문자가 붙음 !
function makePermutations(str) {
// TODO: 여기에 코드를 작성합니다.
let result = ""
for(i=0;i<str.length;i= i +1){
for(n=0;n<str.length;n= n +1){
result = result + str[i]+str[n] + ","
}
}
return result.slice(0,result.length-1)
}
// asd를 입력받을때
//반복문을 사용하여 첫번째 문자를 고정하고 두번째 문자에는 첫번째 문자를 출력합니다
// 두번째에는 첫번째 문자는 그대로 고정을 하고 두번째 문짜를 가지고 옵니다.
// 세번째에는 첫번째 문자는 고정 세번째 문자를 갖고옵니다.
//반복문 for문을 사용하여 i에 초기값을 0으로 두고 문자열의 길이만큼 반복, i는 +1만큼 상승합니다.
// 두번째 반복문 for에는 n은 0부터 문자열의 총 길이만큼 반복하면 +1만큼 상승합니다.
// 출력물은 리절트값에 넘깁니다.
//리저트값을 리턴합니다.
//