티스토리 뷰

문제
 

1065번: 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 

www.acmicpc.net

풀이
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	var n int
	reader := bufio.NewReader(os.Stdin)
	fmt.Fscanln(reader, &n)

	var count = getCountOfHansu(n)
	fmt.Println(count)
}

func getCountOfHansu(number int) (count int) {
	if number < 100 {
		count = number
		return
	}
	for i := 100; i <= number; i++ {
		one := i % 10
		ten := i / 10 % 10
		hund := i / 100
		if hund-ten == ten-one {
			count++
		}
	}
	count += 99
	return count
}
728x90
댓글