몇 가지 대안을 제안하겠습니다.
I. 증분. @YvesDaoust 메소드의 수정을 고려하십시오.
- N을 1 증가
- 선행 0으로 결과 확장
- 마지막 숫자에서 두 번째 숫자로 이동
(a) 2보다 작 으면 모든 것을 그대로 둡니다.
(b) 그렇지 않으면 0으로 설정하고 를 늘리십시오
- 3a, b 단계를 반복하십시오.
예 :
1. N = 0 -> 1 -> (0)|(1) -> 1
2. N = 1 -> 2 -> (0)|(2) -> (1)|(0) -> 10
3. N = 101 -> 102 -> (0)|(1)(0)(2) -> (0)|(1)(1)(0) -> (0)|(1)(1)(0) -> (0)|(1)(1)(0) -> 110
4. N = 298 -> 299 -> (0)|(2)(9)(9) -> (0)|(2)(10)(0) -> (0)|(3)(0)(0) -> (1)|(0)(0)(0) -> 1000
10 진수 형식으로 결과를 얻습니다.
II. 나누기.
- N을 1 증가
- 합계를 0으로 설정
- 결과를 10으로 나누면 div (D) 및 mod (M) 부분이 표시됩니다.
- M 확인
(a) M이 1을 초과하면 D 증가
(b)를 다르게 M * (10)에 의해 합이 증가 케이 (0부터), k는 현재의 반복 수이고,
- D가 0이 될 때까지 3,4 단계를 반복하십시오.
예 1 :
1. N = 0 -> N = 1
2. sum = 0
3. 1/10 -> D == 0, M == 1 -> sum = sum + 1*10^0 == 1
4. D == 0 -> sum == 1
예 2 :
1. N = 1 -> N = 2
2. sum = 0
3. 2/10 -> D == 0, M == 2 -> D = D + 1 == 1
4. 1/10 -> D == 0, M == 1 -> sum = sum + 1*10^1 == 10
5. D == 0, sum == 10
예 3 :
1. N = 101 -> N = 102
2. sum = 0
3. 102/10 -> D == 10, M == 2 -> D = D + 1 == 11
4. 11/10 -> D == 1, M == 1 -> sum = sum + 1*10^1 = 10
5. 1/10 -> D == 0, M == 1 -> sum = sum + 1*10^2 == 10 + 100 == 110
6. D == 0, sum == 110
예 4 :
1. N = 298 -> N = 299
2. sum = 0
3. 299/10 -> D == 29, M == 9 -> D = D + 1 == 30
4. 30/10 -> D == 3, M == 0 -> sum = sum + 0*10^1 == 0
5. 3/10 -> D == 0, M == 3 -> D = D + 1
6. 1/10 -> D == 0, M == 1 -> sum = sum + 1*10^3 == 1000
7. D == 0, sum == 1000