[3-6]
변수 num의 값보다 크면서도 가장 가까운 10의 배수에서 변수 num의 값을 뺀 나머지를 구하는 코드이다. 예를 들어, 24의 크면서도 가장 가까운 10의 배수는 30이 다. 19의 경우 20이고, 81의 경우 90이 된다. 30에서 24를 뺀 나머지는 6이기 때문에 변 수 num의 값이 24라면 6을 결과로 얻어야 한다.
public class Java {
public static void main(String[] args) {
int num = 81;
System.out.println((num/10 + 1) * 10 - num);
System.out.println(10 - num % 10);
}
}
[3-7]
아래는 화씨(Fahrenheit)를 섭씨(Celcius)로 변환하는 코드이다. 변환공식이 'C = 5/9 ×(F - 32)'라고 할 때, (1)에 알맞은 코드를 넣으시오. 단, 변환 결과값은 소수점 셋째자리에서 반올림해야한다.(Math.round()를 사용하지 않고 처리할 것)
public class Java {
public static void main(String[] args) {
int fahrenheit = 100;
float celcius = (int)(5 / 9f * (fahrenheit - 32) * 100 + 1) / 100f;
System.out.println("fahrenheit = " + fahrenheit);
System.out.println("celcius = " + celcius);
}
}
[3-10]
다음은 대문자를 소문자로 변경하는 코드인데, 문자 ch에 저장된 문자가 대문자 인 경우에만 소문자로 변경한다.
public class Java {
public static void main(String[] args) {
char ch = 'A';
char lowerCase = 'A' <= ch && ch <= 'Z' ? (char) (ch + 32) : ch;
System.out.println("ch = " + ch);
System.out.println("lowerCase = " + lowerCase);
}
}
[4-3]
1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+10)의 결과를 계산하시오.
public class Main {
public static void main(String[] args) {
int sum = 0;
int sum2 = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
sum2 += sum;
}
System.out.println(sum2);
}
}
[4-4]
1+(-2)+3+(-4)+... 과 같은 식으로 계속 더해나갔을 때, 몇까지 더해야 총합이 100이상이 되는지 구하시오.
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; true; i++) {
if (i % 2 == 0) {
sum += -i;
} else {
sum += i;
}
if (sum >= 100) {
System.out.println(i);
System.out.println(sum);
break;
}
}
}
}
public class Java {
public static void main(String[] args) {
int sum = 0;
int s = 1;
for (int i = 1; true; i++) {
sum += (i * s);
s = -s;
if (sum >= 100) {
System.out.println(sum);
System.out.println(i);
break;
}
}
}
}
[4-5]
다음의 for문을 while문으로 변경하시오.
public class Exercise4_5 { public static void main(String[] args) { for(int i=0; i<=10; i++) { for(int j=0; j<=i; j++) System.out.print("*"); System.out.println(); } }//end of main } // end of class
public class Main {
public static void main(String[] args) {
int i = 0;
while (i <= 10) {
int j = 0;
while (j <= i) {
System.out.print("*");
j++;
}
i++;
System.out.println();
}
}
}
[4-6]
두개의주사위를던졌을때,눈의합이6이되는모든경우의수를출력하는프 로그램을 작성하시오.
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 7; i++) {
for (int j = 1; j < 7; j++) {
sum = i + j;
if (sum == 6) {
System.out.println(i + " + " + j + " = " + sum);
}
}
}
}
}
[4-9]
숫자로 이루어진 문자열 str이 있을 때, 각 자리의 합을 더한 결과를 출력하는 코 드를 완성하라. 만일 문자열이 "12345"라면, ‘1+2+3+4+5’의 결과인 15를 출력이 출력되 어야 한다. (1)에 알맞은 코드를 넣으시오.
public class Main {
public static void main(String[] args) {
String str = "12345";
int sum = 0;
for (int i = 0; i < str.length(); i++) {
sum += str.charAt(i) - '0';
}
System.out.println("sum = " + sum);
}
}
[4-10]
int타입의 변수 num 이 있을 때, 각 자리의 합을 더한 결과를 출력하는 코드를 완성하라. 만일 변수 num의 값이 12345라면, ‘1+2+3+4+5’의 결과인 15를 출력하라.
public class Java {
public static void main(String[] args) {
int num = 12345;
int sum = 0;
int t = 10000;
int a = 0;
while (true) {
if (t < 1) {
break;
}
if (t == 10000) {
a = num / t;
} else {
a = num / t % 10;
}
t /= 10;
sum += a;
}
System.out.println(sum);
}
}
public class Java {
public static void main(String[] args) {
int num = 12345;
int sum = 0;
int a = 0;
while (num > 0) {
sum += num % 10;
num /= 10;
}
System.out.println(sum);
}
}
[4-11]
1과 1부터 시작하는 피보나치수열의 10번째 수는 무엇인지 계산하는 프로그램을 완성하시오.
public class Main {
public static void main(String[] args) {
int num1 = 1;
int num2 = 1;
int num3 = 0;
System.out.print(num1 + ", " + num2);
for (int i = 0; i < 8; i++) {
num3 = num1 + num2;
System.out.print(", " + num3);
num1 = num2;
num2 = num3;
}
}
}
[4-12]
구구단의 일부분을 다음과 같이 출력하시오.
public class Main {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 1; j < 4; j++) {
int x = j + 1 + (i - 1) / 3 * 3;
int y = i % 3 == 0 ? 3 : i % 3;
if (x > 9) {
break;
}
System.out.print(x + " * " + y + " = " + x * y + "\t");
}
System.out.println();
if (i % 3 == 0) {
System.out.println();
}
}
}
}
[4-13]
다음은 주어진 문자열(value)이 숫자인지를 판별하는 프로그램이다. (1)에 알맞 은 코드를 넣어서 프로그램을 완성하시오.
public class Main {
public static void main(String[] args) {
String value = "12ㅇ34";
char ch = ' ';
boolean isNumber = true;
for (int i = 0; i < value.length(); i++) {
int j = 0;
ch = value.charAt(i);
if (!(0 <= ch - '0' && ch - '0' <= 9)) {
j++;
}
if (j != 0) {
isNumber = false;
}
}
if (isNumber) {
System.out.println(value + "는 숫자입니다.");
} else {
System.out.println(value + "는 숫자가 아닙니다.");
}
}
}
charAt()
를 이용해서 한 글자씩 검사했다.
j라는 변수를 0으로 초기화 한 후, 만약 숫자가 아니라면 j값을 증가시켰다.
문자열에 숫자가 아닌 문자가 하나라도 있을경우, j의 값은 0이 아니다.
따라서 if
문을 추가해 j가 0이 아니라면 isNumber
가 false
가 되게했다.
public class Java {
public static void main(String[] args) {
String value = "12ㅇ34";
char ch = ' ';
boolean isNumber = true;
for (int i = 0; i < value.length(); i++) {
ch = value.charAt(i);
if (!(0 <= ch - '0' && ch - '0' <= 9)) {
isNumber = false;
break;
}
}
if (isNumber) {
System.out.println(value + "는 숫자입니다.");
} else {
System.out.println(value + "는 숫자가 아닙니다.");
}
}
}
문자 검사 중 숫자가 아닌 문자를 만나면 isNumber
를 false
로 바꾸고 break
를 이용해 for
문을 빠져나온다.
반목문의 break
를 이용하면 훨씬 간단한 일이었다.