
22////
자연수가 매개변수로 주어지면 의 각 자릿수 합계를 반환 N하는 함수를 작성하십시오 . 예를 들어, N = 123이면 1 + 2 + 3 = 6을 반환합니다.solutionN
public int solution(int n) {
int answer=0;
String s= Integer.toString(n);
for (int i=0; i< s.length(); i++){
answer+=Integer.parseInt(s.substring(i,i+1));
}
return answer;
}
}
22번 문제
n이라는 정수형을 Integer.toString(n); 으로써 문자열로 변환시켰다
Integer.parseInt 는 문자열을 다시 숫자로 바꿔준다
.substring(x,y) 라고 하면
문자열의 x인덱스부터 y인덱스의 앞까지만 출력한다
============================================================================
25///
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
class sol_25 {
public double solution(long n) {
double answer = 0;
double num = Math.sqrt(n);
System.out.println(num);
if (num-(int)num==0.0) {
answer= Math.pow(num+1,2);
}
else{
answer= -1;
}
return answer;
}
}
25번문제
Math.sprt(n); : n의 제곱근값이 나온다// 이때 결과는 실수로 나오므로 double 타입변수를 선언해야한다
num-(int)num==0.0 을 통해 실수와 정수 판별하였다
Manthpow(x,y); : 는 x^y 값을 제공한다 결과는 실수로 나오므로 역시 double 변수 선언
============================================================================
28번 문제//양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
class sol_28 {
public boolean solution(int x) {
boolean answer = true;
String s= Integer.toString(x);
int s_num = 0;
// 각자리의합을 선언
for(int i=0; i<s.length();i++){
s_num+=Integer.parseInt(s.substring(i,i+1));
}
//각자리의 합을구한다
if(x%s_num==0){
answer=true;
}
else {
answer=false;
}
//나누어 떨어지는지 확인
return answer;
}
}
22번과 25번을 종합하여 풀었다.
각자리의 합을 구하는부분만 조금더 숙지를 하면될것같다
'TechKnowledge > 알고리즘' 카테고리의 다른 글
| 백준 2775: 부녀회장이 될테야 Java(자바) 동적계획법을 이용한 풀이 (0) | 2023.01.10 |
|---|---|
| 최소신장트리/크루스칼 알고리즘 (0) | 2023.01.04 |
| 항해 알고리즘 4일차 (0) | 2022.05.17 |
| 항해 알고리즘 2일차 (0) | 2022.05.14 |
| 항해 알고리즘1일차 (0) | 2022.05.13 |