자바 완전수 프로그램 ,마방진 출력 프로그램
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

문제분석
프로그램설계 알고리즘
소스코드
결과분석
소감

본문내용

지정한다.
for문을 이용하여 정해진 위치 에 1부터 값을 채워 넣는다.
값이 size의 배수인지 확인
배수이면 행의 위치+1을 하며
배수가 아닐시 행,열 -1을 각각 해준다.
행의값(a)이 0보다 작을시 마지막 행으로 이동
열의 값(b)이 주어진 범위보다 클 경우 첫열로 이동.
for문을 이용하여 값을 n*n의형태로 출력시킨다.
소스코드
import java.io.*;
public class Ex2 {
public static void main(String[] arg) throws java.io.IOException{
int size, i ,cont=1;//size=마방진 크기 i,cont = while문에서 사용할 변수
int a,b;//배열의 위치로 사용할 변수
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력받은 수를 저장할 버퍼 생성
System.out.println("마방진의 크기를 홀수만 입력하세요." );
size = Integer.parseInt(br.readLine());//마방진 크기를입력 받는 부분
System.out.println(size+"by"+size+" 마방진");
i=size;
int[][] arr= new int[size][size];//입력 받은 크기로 배열 생성
for(a=0,b=(size-1)/2 ; cont<(size*size+1);cont++){
//for 문을 이용 마방진조건 에 맞는 위치에 수를 차례로 입력
arr[a][b]=cont; //첫행 중앙의 열부터 수를 채워 넣는다.
if(((cont+size)%size)==0)++a; //size의 배수이면 행을 아래로 내린다.
else { //그렇치 않은경우는 우측 위 대각선으로 숫자를 채워넣는다.
--a;
++b;
}
if(a<0)a=size-1;
//만약 다음 입력의 위치가 첫행보다 위에 일때 마지막 행으로 입력 위치를 보낸다.
if(b>size-1)b=0;//다음 입력의 위치가 열의 끝일때는 첫열로 입력할 위치를 옮긴다.
}
for(a=0;a System.out.println();
for(b=0;b System.out.print(arr[a][b]+" ");
}
}
}
결과분석
홀수인 7을 입력하여 보았다. 7by7의 마방진이 출력 됐으며 어느 방향으로 더하던지 모두 175가 되는 것을 확인할수있었고, 정상적으로 프로그램이 실행되었음을 알수있다.
9by9 마방진도 출력 해보았고 이도 이상없이 출력 되는것을 확인할수있엇다.
소감
이번 마방진 과제는 어떤식으로 문제를 풀어야할지 처음엔 막막했다. 마방진의 특성과 어떤식으로 알고리즘을 짜야 할지 생각하는데 시간이 좀 걸렸으며 처음 완성하여 막상 실행을 시키는 과정에서도 오류가 몇 번 나와서 시간이 오래 걸렸다. 하지만 알고리즘을 확실히 이해 하고 몇 번 수정작업을 한 끝에 완성할수있었고, 오래 걸린만큼 완성된후 기분이 더 좋았다.

키워드

  • 가격1,000
  • 페이지수7페이지
  • 등록일2007.12.26
  • 저작시기2007.9
  • 파일형식한글(hwp)
  • 자료번호#444638
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니