2015년 8월 2일 일요일

원하는 숫자의 갯수 구하기(count number)

이번 알고리즘은 자신이 원하는 숫자가 총 몇개나 들어갔는지 찾는 알고리즘이다.

예를들어, 1~200 까지중에 7이라는 숫자가 몇번들어갈까?

뒤에 자리수가 7인것을 197 까지 새면 20개 가 되는가?

아니다. 77, 177, 71 등 7이 두 개이상 들어 가거나 7이 10의 자리, 100의 자리등 어디든지

올 수 있기 때문이다. 이모든 경우의 수를따져 숫자 7이 어디에 들어가던지 그 총 갯수를

찾는 코드를 구현해 보았다.

1. 선행 지식

각자리수 마다 7을 찾는 방법을 알아야한다.

그래서 생각한 방법이. 각자리수를 10의 배수로 나누고 그나머지를 일의 자리로 만들어

그 값이 7이면 그 수의 7이 들어가는 갯수를 알수있다.

예를들어 , 1777이라는 숫자가있으면 10000으로 나눴을때 몫이 0 이고 나머지가 1777이다.

이때, 이값을 10000보다 한 자리 작은 자릿수 1000 으로 나누면  1000의자리가 1임을 안다.

동일한 방법으로 자릿수를 낮춰 1000으로 나눴을때 몫이 1이 되고 나머지는 777 이된다.

나머지 777을 다시 100 으로 나누면 100의자리가 7이라는 것을 알 수 있다.

나머지 자릿수 도 동일한 방법으로 연산하면 각자릿수에 7이 몇번 들어가는지 알 수 있다.

2. 처리과정

1) 값을 입력받는다.

2) 입력받은 값을 '1.선행과정'의 내용대로 원하는 숫자(7)를 찾는다.

3) 원하는 숫자(7)을 찾을때 마다 count 를 늘려준다.

밑의 코드는 처리과정을 코딩 해본 것이다.

코드를 실행 해보자.
위 와 같이 숫자 를 입력받는다. 77을 넣어보자.

그렇다면 답은 7 , 17, 27, 37, 47, 57, 67, 70, 71, 72, 73, 74, 75, 76, 77 까지 총 16개가 나와야한다. 



값이 정확하게 나온다.






0 개의 댓글:

댓글 쓰기