문제1)수 124 를 뒤집으면 421 이 되고 이 두 수를 합하면 545 가 된다.
124 와 같이 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는 수를 10 에서 100000 까지 모두 출력하라.
입출력 예
출력
10
11
12....
sol)
class A{
public static void main(String args[]){
int num;
int hap;
int temp2;
for(num=10;num<=100000;num++){
String temp="";
String t=""+num;
for(int i=t.length()-1;i>=0;i--){
temp+=t.charAt(i); //숫자 뒤집어서 담기
}
hap=num+Integer.parseInt(temp); //두수의 합
temp2=hap; //두수의 합을 담은 변수
int result=0; //두수의 합을 뒤집은 수 담을 변수 선언
while(temp2!=0){
result=result*10+temp2%10; //뒤집은 수 구해서 result에 담기
temp2/=10;
if(hap==result) //합과 합을 뒤집은수가 같다면 num출력
System.out.println(num);
}
}
}
}
문제2)두 수를 입력으로 받아 두수를 뒤집어서 더한 후 더한 결과를 뒤집어서 출력
입력으로 12 와 345 가 입력된다면 21 + 543 = 564 이를 역으로 출력하면 465 이다.
입출력 예
입력
12 345
출력
465
sol)
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String a=sc.next();
String b=sc.next();
String temp1="";
String temp2="";
String temp3="";
if(Integer.parseInt(a)<=100000000&&Integer.parseInt(b)<=100000000){
for(int i=a.length()-1;i>=0;i--){
temp1+=a.charAt(i); //숫자 뒤집어서 담기
}
for(int i=b.length()-1;i>=0;i--){
temp2+=b.charAt(i); //숫자 뒤집어서 담기
}
int temp4=Integer.parseInt(temp1)+Integer.parseInt(temp2);
String temp5=""+temp4;
for(int i= temp5.length()-1;i>=0;i--){
temp3+=temp5.charAt(i); //숫자 뒤집어서 담기
}
System.out.println(temp3);
}
else
System.out.println("입력값의 범위 초과");
}
}
'개발하자 > JAVA문제풀이' 카테고리의 다른 글
frequency (수의 빈도수 계산) (0) | 2015.01.06 |
---|---|
윷놀이 (0) | 2015.01.06 |
버블정렬(재귀함수 사용) (0) | 2015.01.06 |
이진수로 변경하는 프로그램작성(재귀함수 이용) (0) | 2015.01.06 |
2진회귀수 문제 (0) | 2015.01.06 |