본문 바로가기

개발하자/JAVA문제풀이

(15)
그릇높이계산 그릇을 바닥에 놓았을 때 그 높이는 10cm 이 다. 그런데 두 개의 그릇을 같은 방향으로 포개면 그 높이는 5cm만 증가된다. 만일 그릇이 서로 반대방향으로 쌓이면 높이는 그릇만큼, 즉 10cm 늘 어난다. 그릇을 괄호 기호로 나타내어 설명해보자. 편의상 그릇이 쌓여지는 방향은 왼쪽에서 오른쪽 이라고 가정한다. 그림에서 ‘(’은 그릇이 바닥에 바로 놓인 상태를 나타내며, ‘)’은 그릇이 거꾸로 놓인 상태를 나타낸다. 만일 그릇이 포개진 모양이 아래 그림 1(a)와 같다면 전체의 높이는 25cm가 된다. 왜냐하면 처음 바닥에 있는 그릇의 높이가 10cm이고 이후 같은 방향으로 3개의 그릇이 포개져 있으므로 늘어난 높이는 5+5+5=15 이기 때문이다. 그림 1(b)와 같은 경우라면 그 높이는 10*4=4..
frequency (수의 빈도수 계산) 프로그램 명: frequency 수 N (0
윷놀이 네 개 윷짝을 던져서 나온 각 윷짝의 배 혹은 등 정보가 주어질 때 도(배 한 개, 등 세 개), 개(배 두 개, 등 두 개), 걸(배 세 개, 등 한 개), 윷(배 네 개), 모(등 네 개) 중 어떤 것인지를 결정하는 프로그램을 작성하라. 입력 첫째 줄부터 셋째 줄까지 각 줄에 각각 한 번 던진 윷짝들의 상태를 나타내는 네 개의 정수(0 또는 1)가 빈칸을 사이에 두고 주어진다. 출력 첫째 줄부터 셋째 줄까지 한 줄에 하나씩 결과를 도는 A, 개는 B, 걸은 C, 윷은 D, 모는 E로 출력 한다. 입출력 예입력0 1 0 11 1 1 00 0 1 1출력BABsol) import java.util.Scanner; public class Main { public static void main(String[]..
버블정렬(재귀함수 사용) 문제)무작위로 10개의 숫자 입력받아 순서대로 정렬하기(버블정렬-재귀함수 사용) import java.util.Scanner; class Main{ static int arr[]=new int[10]; static int temp; static int k; static int sort(int j){ if(j
이진수로 변경하는 프로그램작성(재귀함수 이용) 10 진수를 입력으로 받아 이진수로 변경하는 프로그램을 작성하시오. 입력 입력으로 1000 이하의 자연수가 주어진다. 출력 입출력 예 입력 10 출력 1010 입력 11 출력 1011 요구사항 아래 프로그램을 분석 후 재귀를 사용할 것 #include void print(int n){ if ( n != 1 ) print(n-1); printf("%d ",n);}int main(){ print(5);}sol)import java.util.Scanner;class Main{ static String p(int n){ int temp=n; int s=temp/2; int w=0; String sum=""; String sum1=""; if(s!=0){ sum+=temp%2; return sum+p(s); } ..
2진회귀수 문제 문제)10 진수 n 의 이진수가 회귀수이면 이 수 n 을 이진 회귀수라 하자. 21 은 10 진수로 회귀수가 아니지만 , 2 진수로는 회귀수이다.(10101) 1 에서 100 000 사이에 있는 이진 회귀수를 모두 출력하라. class Main{ public static void main(String[] args){ for(int num=1;num=0;i--){ //이진수의 길이만큼 거꾸로 반복 temp+=a.charAt(i); //숫자 뒤집어서 담기 } if(Long.parseLong(a)==Long.parseLong(temp)){ System.out.println(num); } } } }
수뒤집기&회귀수 문제 문제1)수 124 를 뒤집으면 421 이 되고 이 두 수를 합하면 545 가 된다. 124 와 같이 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는 수를 10 에서 100000 까지 모두 출력하라. 입출력 예출력101112.... sol) class A{ public static void main(String args[]){ int num; int hap; int temp2; for(num=10;num=0;i--){ temp+=t.charAt(i); //숫자 뒤집어서 담기 } hap=num+Integer.parseInt(temp); //두수의 합 temp2=hap; //두수의 합을 담은 변수 int result=0; //두수의 합을 뒤집은 수 담을 변수 선언 while(temp2!=0){ result..