Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 남양주맛집
- richtext
- 상속
- DOM
- BeautifulSoup
- removetooltip
- 정렬알고리즘
- FLUTTER
- 자바
- JavaScript
- pipenv
- 포인터
- 부스트코스
- 노마드코더
- python3
- 장고
- c언어문자열
- 코딩독학
- 강원도속초맛집
- 건대입구맛집
- Python
- 알고리즘
- 추상클래스
- 컴퓨터과학
- Django
- 속초여행
- 가상환경
- 아스키코드
- popupmenubutton
- 성수동카페
Archives
- Today
- Total
YUYANE
JAVA / 각 자릿수의 합을 구하기 (백준 4673번) 본문
1. 759라는 숫자가 있는데, 각 자리에 위치한 숫자의 합을 구하고 싶다.
예시 ) 7+5+9
2. 다음 함수를 이용하자 (모든 변수는 int형)
while(i!=0){
sum += i%10;
i /=10;
}
1) 원리는 처음에 10으로 나눈 나머지를 구하여 sum이라는 변수에 더해준다.
(i=759, 759에서 10으로 나눈 나머지는 9를 sum에 더함)
2) 759를 10으로 나누면 75 (int형이라서 소수점 이하는 버린다.)
3) while 반복문이기 때문에 다시 처음으로 돌아가자.
4) i = 75가 되고, 75를 10으로 나눈 나머지는 5
...
3. 백준 4673번 문제 풀이
(출력문과 맞추기 위해서 약간 꼼수를 썼다 ㅠ)
public class _4673 {
public static void main(String[] args) {
boolean selfnumbers[] = new boolean[10001];
int sum=0; // 자리수의 합
int selfnumber =0;
int x=1;
for(int i=1; i<10001; i++){
x=i;
while(i!=0){
sum += i%10;
i /=10;
}
selfnumber= x+sum;
if(selfnumber>10000) {
break;
}else{
selfnumbers[selfnumber]=true; //셀프넘버라면 true
sum=0;
i=x;
}
}
for(int i=1; i<9995; i++){
if(selfnumbers[i]==false)
System.out.println(i);
}
}
}
'Programming Languages > JAVA' 카테고리의 다른 글
접근제어자 (0) | 2020.12.10 |
---|---|
JAVA / 아스키코드 (백준 11654) (0) | 2020.11.25 |
JAVA / nextInt( ) 다음에 nextLine( )을 입력 받을 때 생길 수 있는 오류(백준 4344 자바) (0) | 2020.11.20 |
JAVA / split으로 string 문자열 나누어 배열에 저장하기 (백준 8958 자바) (0) | 2020.11.20 |
JAVA / 상속 - 추상 클래스 (0) | 2020.10.02 |
Comments