유니코드의 둥근 숫자(①라든지)로 행해진 건

기사의 내용상, 기종 의존 문자를 사용하고 있기 때문에,
환경에 따라서는 문자가 읽기 어려운 상황이지만 양해 바랍니다 m (_ _) m

소개



여러분, 둥근 숫자라고 하는 것을 사용하고 있습니까? ? 같이 숫자를 마치 둘러싸고 있는 녀석입니다. 덧붙여서 까지 존재합니다.

그렇게 진행되어 이용하는 것도 적다고 생각합니다만,
이번 요건으로 리스트 위에서 차례로 둥근 숫자를 흔들어달라고 요청이 있었습니다.

「그냥 연속 번 내릴 뿐!」라고 착수했습니다만,
생각하고 있던 실장과 다른 내용이 되었으므로 좋으면 참고로 해 주세요.

구현



우선 까지밖에 없습니다! 라고 하는 것으로, 까지로 좋다고 용서를 받았습니다.
우선 일안심

실장 그 ①


↓와 같은 코드를 썼습니다 (JavaScript입니다)
function toCircled(num) {
  const base = ''.charCodeAt(0);
  return String.fromCharCode(base + num - 1);
}
// 入力チェックは省略

그런 함수도 생겼기 때문에 막상 동작 확인
for (let i = 1; i <= 50; i++) {
  console.log(toCircled(i));
}

// ①
// ②
// ③
// ...   いい調子!
// ⑲
// ⑳
// ⑴    !?
// ⑵    !!??
에서 먼저 다른 패턴의 숫자가 나왔다 - 에서 다른 장소에 있는지...

코드 값을 살펴보기


''.charCodeAt(0); // -> 9312
''.charCodeAt(0); // -> 9331
''.charCodeAt(0); // -> 12881

많이 날고 있다.
20으로 조건 분기하도록 합니다!

구현 그 ②



21 이상의 경우는 를 기준으로 하도록 변경했습니다.
function toCircled(num) {
  if (num <= 20) {
    const base = ''.charCodeAt(0);
    return String.fromCharCode(base + num - 1);
  }
  const base = ''.charCodeAt(0);
  return String.fromCharCode(base + num - 21);
}

막상 동작 확인
for (let i = 1; i <= 50; i++) {
  console.log(toCircled(i));
}

// ①
// ...
// ⑳
// ㉑    よっしゃ!!
// ㉒
// ...
// ㉞
// ㉟
// ㉠    !?
// ㉡    !!??

36에 다시 보이지 않는 벽이 있었는지 ...
여기서 마침내 Google 선생님과 상담
Wikipadia에 바로 둥근 숫자 페이지 ! !

처음 20으로 넘어 섰을 때 보아야했습니다

실장 그 ③ (최종판)


function toCircled(num) {
  if (num <= 20) {
    const base = ''.charCodeAt(0);
    return String.fromCharCode(base + num - 1);
  }
  if (num <= 35) {
    const base = ''.charCodeAt(0);
    return String.fromCharCode(base + num - 21);
  }
  const base = ''.charCodeAt(0);
  return String.fromCharCode(base + num - 36);
}

이것으로 움직일 것입니다 ...! !
for (let i = 1; i <= 50; i++) {
  console.log(toCircled(i));
}

// ①
// ...
// ㉟
// ㊱    やったー!
// ㊲
// ...
// ㊿

후기



2,3행으로 끝난다고 생각했기 때문에, 여기까지 커진다고는 생각하고 있지 않았습니다.
그리고 최초로 넘어진 단계에서 '그 밖에도 있는 것은...?'라는 의문을 가지지 않은 것이 이번 패인입니다.

만약 뭔가의 참고가 된다고 생각합니다( ˘꒳˘ )

오시마

좋은 웹페이지 즐겨찾기