問題アノテーション変数、条件文、文字列、繰り返し文
28453 ワード
変数の定理
条件文
文字列
複文
03_isOdd
入力した「¥2」の数が奇数であるかどうかを返さなければなりません.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
パラメータ1:num
数値タイプの整数
------------------------------------<出力>----------------------------------------------
booleanタイプを返す必要があります.
-------------------------<注意事項>---------------------------------------
繰り返し文(while)を使用する必要があります.
for文の使用を禁止します.
除算(/)およびその他(%)演算子の使用を禁止します.
0は偶数とみなされます.
----------------------------------------------------------------
2つの数(2つの数を含む)を入力し、2つの数の間の2倍を返さなければなりません.
--------------------------------<入力>--------------------------------
パラメータ1:num 1
numberタイプの整数(num 1>=0)
パラメータ2:num 2
numberタイプの整数(num 2>=0)
------------------------------------<出力>----------------------------------------------
numberタイプを返す必要があります.
---------------------------------------------------------------------------------------
繰り返し文を使用する必要があります.
num 1はnum 2より小さくない場合があります.
0が2の倍数ではないと仮定します.
-------------------------------------------------------------------------------------------------------------------------------
1つ以上の自然数を入力した場合は、小数(prime number)を返さなければなりません.
–––––––––––––入力––入力–––
パラメータ1:num
数値タイプの数
————————————————————————————————————————————————————————————————
booleanタイプを返す必要があります.
——————————————————————————————————————《入出力例》————————————
内蔵JavaScriptオブジェクトMathを使用して不要な演算を削減します.(JavaScript平方根またはJavaScript平方根)
を入力し、2からその数までの小数(素数)を返します.
<入力>------------------------------------------------------------------
パラメータ1:num
numberタイプの整数(num>=2)
<出力>-------------------------------------------------------------------
stringタイプを返さなければなりません.
2-3-5-7の形式で返さなければなりません.
<注意事項>------------------------------------------------------------
二重繰り返し文(double for loop)を使用する必要があります.
I/O例
重複文に関するbreak文を学習します.(javascript loop break)
条件文
文字列
複文
03_isOdd
入力した「¥2」の数が奇数であるかどうかを返さなければなりません.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
パラメータ1:num
数値タイプの整数
------------------------------------<出力>----------------------------------------------
booleanタイプを返す必要があります.
-------------------------<注意事項>---------------------------------------
繰り返し文(while)を使用する必要があります.
for文の使用を禁止します.
除算(/)およびその他(%)演算子の使用を禁止します.
0は偶数とみなされます.
--------------------------------
let output = isOdd(17);
console.log(output); // --> true
output = isOdd(-8);
console.log(output); // --> false
-------------------------------------------------------------------------
function isOdd(num) {
// 숫자-2 계속 반복했을 때 (단, 조건은 양수일대까지) 1 -> 홀 / 0-> 짝
// (num - 2) === 1 -> return true / === 0 -> return false;
if (num < 0) {
num = -num // 별개로, 만약에 num이 음수일 경우 양수로 만들어주기
}
// while 문을 사용해서 조건을 적어준다.
// while()문 안에 들어갈 조건은?(num이 양수일 경우)
while(num >=0) { // 따로 result 선언 안하고 해줘서 더 효율적인듯?? 미리미리 리턴값. 이렇게도 할수있음.
if (num === 0) {
return false
} else if(num === 1) { // 만약 num이 0이면? 짝수다! (false 리턴)
return true // 만약 num이 1이면? 홀수다! (true 리턴)
} // num이 0, 1 을 제외한 양수 경우 계속 -2
num =num-2
}
}
10_makeMultiplesOfDigit22つの数(2つの数を含む)を入力し、2つの数の間の2倍を返さなければなりません.
--------------------------------<入力>--------------------------------
パラメータ1:num 1
numberタイプの整数(num 1>=0)
パラメータ2:num 2
numberタイプの整数(num 2>=0)
------------------------------------<出力>----------------------------------------------
numberタイプを返す必要があります.
---------------------------------------------------------------------------------------
繰り返し文を使用する必要があります.
num 1はnum 2より小さくない場合があります.
0が2の倍数ではないと仮定します.
------------------------------------
let output = makeMultiplesOfDigit2(8, 12);
console.log(output); // --> 3
output = makeMultiplesOfDigit2(12, 8);
console.log(output); // --> 3
output = makeMultiplesOfDigit2(1, 3);
console.log(output); // --> 1
output = makeMultiplesOfDigit2(0, 0);
console.log(output); // --> 0
output = makeMultiplesOfDigit2(2, 2);
console.log(output); // --> 1
----------------------------------------------------
function makeMultiplesOfDigit2(num1, num2) {
// num1과 num2 사이에서 반복문을 돌려서 --> 시작용, 끝용 변수 선언
// 그 사이에 2의 배수가 몇개나 있는지 확인한다--->카운트 용 변수 선언
let count = 0;
let start = num1;
let end = num2;
if (num1 > num2) { // point 1 : 만약 num1이 num2보다 크다면?
start = num2; // start와 end바꿔주기
end = num1;
}
if (start === 0) { // point 2 : start가 0인 경우에는 start를 1로 재할당(주의사항참고)
start = 1;
}
for (let i = start; i <= end; i++) { // start부터 end까지 돌리자
if (i % 2 === 0) {
count += 1;
}
}
return count;
}
17_isPrime1つ以上の自然数を入力した場合は、小数(prime number)を返さなければなりません.
–––––––––––––入力––入力–––
パラメータ1:num
数値タイプの数
————————————————————————————————————————————————————————————————
booleanタイプを返す必要があります.
——————————————————————————————————————《入出力例》————————————
let output = isPrime(2);
console.log(output); // --> true
output = isPrime(6);
console.log(output); // --> false
output = isPrime(17);
console.log(output); // --> true
<ヒント>内蔵JavaScriptオブジェクトMathを使用して不要な演算を削減します.(JavaScript平方根またはJavaScript平方根)
// 약수의 개수가 2개뿐인 수 : 1과 자기자신만이 약수인 수
// Math.sqrt() : Math.sqrt(9); -- 3 /// Math.sqrt(2);-- 1.414213562373095 ---> parseInt 이용 정수만들어야겠다
// 그래서 sqrt라는 변수선언하고 시작
// 1은 소수가 아니다 :if num === 1 이면 false; 먼저 처리
// 짝수는 소수가 아니다 but 2는 예외, if num === 2 면 true / num%2 ===0 이면 false;
// for문으로 체크- i = 3부터 시작/ 제곱근 sqrt까지 체크/ 2씩 증감
// 홀수만 나옴-> ~ N제곱근까지 나눠본 후 하나라도 나눠떨어지는 것이 존재하면 false
// num % i === 0 으로 false 값부터 빼내고
// 나머지 true -> N제곱근까지 나눴음에도 나눠떨어지지 않는 경우 소수
function isPrime(num) {
let sqrt = parseInt(Math.sqrt(num));
if (num === 1) {
return false;
}
if (num === 2) {
return true;
}
if (num % 2 === 0) {
return false;
}
for (let i = 3; i <= sqrt; i += 2) {
if (num % i === 0) {
return false;
}
}
return true;
}
18_listPrimesを入力し、2からその数までの小数(素数)を返します.
<入力>------------------------------------------------------------------
パラメータ1:num
numberタイプの整数(num>=2)
<出力>-------------------------------------------------------------------
stringタイプを返さなければなりません.
2-3-5-7の形式で返さなければなりません.
<注意事項>------------------------------------------------------------
二重繰り返し文(double for loop)を使用する必要があります.
I/O例
let output = listPrimes(2);
console.log(output); // --> '2'
output = listPrimes(6);
console.log(output); // --> '2-3-5'
output = listPrimes(18);
console.log(output); // --> '2-3-5-7-11-13-17'
<ヒント>------------------------------------------------------------------重複文に関するbreak文を学習します.(javascript loop break)
function listPrimes(num) { // 1. 2가 기본 시작 수 ... 일단 변수 result에 2를 할당해 쌓아나가야겠다.->결과값으로 변수 result를 리턴할수 있게끔
let result = '2' // 2. 2는 어차피 받으니까, for문의 초기화는 i= 3부터 시작
// num의 숫자 까지만 확인(이하)/ 2씩 증
for(let i= 3; i <= num; i += 2;){ // 3. true - false값 따라 결과 내기 위한 변수 만들어줌(true 디폴트)
// parseInt(Math.sqrt(i)) 활용 거듭제곱근 구한수를 정수로 바꿔줌
let judge === true;
let sqrt = parseInt(Math.sqrt(i));
for (let j =3; j <= sqrt; j += 2;){ // 4. 3이상 홀수들이 쌓이게 됨-> 그 숫자들을 for 문 안에 넣어 i마다 하나하나 확인
//-> j = 3부터시작/ i의 거듭제곱근 까지만->i 2씩 증
if (i % j === 0) { //5. i % j 해줘서 딱떨어지면 소수 아니므로 false값 줌, break로 내보냄
judge === false;
break;
}
}
if (judge) { //6. 밖 for안에 true여야만 통과하는 조건문 만듬 result-``이용 문자열만듬
result = `${result} - ${i}`;
}
}
return result;
}
}
使用ex) 'e'의 존재, 수 찾기
const str = 'To be, or not to be, that is the question.'
let count = 0
let position = str.indexOf('e')
while (position !== -1) {
count++
position = str.indexOf('e', position + 1)
}
console.log(count) // displays 4
Reference
この問題について(問題アノテーション変数、条件文、文字列、繰り返し文), 我々は、より多くの情報をここで見つけました https://velog.io/@nala723/문제노트변수-조건문-문자열-반복문テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol