초등학교 때 배우는 두 정수의 곱셈표를 만들어 주는 자바 애플리케이션 소스이다.
* Filename: MakeMultTableApp.java
*
* Print a multiplication table.
*
* Compile: javac -d . MakeMultTableApp.java
* Execute: java MakeMultTableApp 230 5100
*
* Date: 2009/03/06
* Author: pkim (AT) scripts.pe.kr
*/
import java.io.*;
import java.util.*;
public class MakeMultTableApp {
public static void printUsing() {
System.out.println("Using: java MakeMultTableApp [number1] [number2]");
System.out.println("Print a multiplication table for given two integers.");
}
public static void printMultTable(long x, long y) {
long nx = (x >= 0L) ? x : - x;
long ny = (y >= 0L) ? y : - y;
int ntail1 = 0;
int ntail2 = 0;
while (nx % 10 == 0) {
nx = nx / 10;
ntail1++;
}
while (ny % 10 == 0) {
ny = ny / 10;
ntail2++;
}
long z = nx * ny;
String strZ = "" + z;
String strX = "" + nx;
String strY = "" + ny;
int n = strY.length();
String zeros = "0000000000000000000000000000000000000000";
String whites = " ";
String bars = "----------------------------------------";
String line1, line2, line3, line4;
String loffset = " ";
line4 = loffset + strZ;
line1 = loffset + whites.substring(0, strZ.length() - strX.length()) + strX;
line2 = " x ) " + whites.substring(0, strZ.length() - strY.length()) + strY;
line3 = " --" + bars.substring(0, strZ.length());
System.out.println(line1 + zeros.substring(0, ntail1));
System.out.println(line2 + zeros.substring(0, ntail2));
System.out.println(line3);
if (strY.length() > 1) {
int y1;
String strT;
for (int i = 0; i < strY.length(); i++) {
y1 = Integer.parseInt(strY.substring(strY.length() - i - 1, strY.length() - i));
if (y1 != 0) {
strT = "" + (nx * y1);
System.out.println(loffset + whites.substring(0, strZ.length() - strT.length() - i) + strT);
}
}
System.out.println(line3);
}
System.out.println(line4 + zeros.substring(0, ntail1) + zeros.substring(0, ntail2));
}
public static void main(String[] args) {
long x, y;
if (args.length >= 2) {
x = Long.parseLong(args[0]);
y = Long.parseLong(args[1]);
System.out.println("");
printMultTable(x, y);
}
else {
printUsing();
}
}
}
컴파일> javac -d . MakeMultTableApp.java
실행> java MakeMultTableApp 230 5100
결과>
230 x ) 5100 ------ 23 115 ------ 1173000
'프로그래밍 > Java' 카테고리의 다른 글
스트링 배열 정렬(sorting)하기 with Java (0) | 2009.04.17 |
---|---|
Pollard's rho method 소개: 정수의 인수분해(factorizing integers) with Java (0) | 2009.03.24 |
iTexT를 이용한 RTF 파일 만들기 HelloHangul.java (0) | 2009.02.13 |
Hello Swing 애플리케이션 예제 for Java (0) | 2009.01.29 |
Hello AWT 애플리케이션 예제 for Java (0) | 2009.01.29 |