1. 최대값을 구하기
[1] 세 개의 양수 중 최대값 구하기
package practice2_Q;
import java.util.Scanner;
public class Q1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = new int[3];
System.out.print("세 개의 양수를 입력하세요 : ");
arr[0] = scanner.nextInt();
arr[1] = scanner.nextInt();
arr[2] = scanner.nextInt();
int max = 0;
for(int i = 0; i < 3; i++) {
if(max <= arr[i]) {
max = arr[i];
}
}
System.out.println("Max : "+max);
scanner.close();
}
}
>> 결과
세 개의 양수를 입력하세요 : 5 89 21
Max : 89
2. 입력받은 문자 읽기
[1] 사용자가 입력한 문자에서 알파벳 문자, 숫자, 화이트문자, 특수문자 갯수 출력
package practice2_Q;
import java.io.IOException;
public class Q2 {
public static void main(String[] args) throws IOException{
int ch = 0;
int[] cnt = {0, 0, 0, 0}; //알파벳, 숫자, 화이트, 특수문자 순차 입력
System.out.println("문자를 입력하세요(Ctrl+z하면 완료)");
do
{
ch = System.in.read();
if(ch == -1) break;
System.out.printf("%c",ch);
if((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {
cnt[0]++; //알파벳
}else if(ch >= '0' && ch <= '9') {
cnt[1]++; //숫자
}else if(ch == '\r' || ch == '\n' || ch == ' ' || ch == '\t'){
cnt[2]++; //화이트문자
}else {
cnt[3]++; //기타(특수기호)
}
}while(true);
System.out.println();
System.out.println("알파벳 : "+cnt[0]);
System.out.println("숫자 : "+cnt[1]);
System.out.println("화이트 : "+cnt[2]);
System.out.println("특수문자 : "+cnt[3]);
}
}
>> 결과
문자를 입력하세요(Ctrl+z하면 완료)
hey there, wanna hang out? :)
hey there, wanna hang out? :)
알파벳 : 20
숫자 : 0
화이트 : 7
특수문자 : 4
[2] 사용자로부터 두 개의 양수와 연산자를 받아 계산하기
package practice2_Q;
import java.util.Scanner;
public class Q3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("두 개의 양수와 연산자를 입력하세요 : ");
int x = scanner.nextInt();
int y = scanner.nextInt();
String z = scanner.next();
int result = 0;
switch(z){
case "+" : result = x + y; break;
case "-" : result = x - y; break;
case "*" : result = x * y; break;
case "/" : result = x / y; break;
case "%" : result = x % y; break;
default : result = -1;
}
System.out.printf("%d %s %d = %d",x,z,y,result);
scanner.close();
}
}
>> 결과
두 개의 양수와 연산자를 입력하세요 : 2 3 +
2 + 3 = 5
[3] 사용자로부터 알파벳 문자를 하나 받아 나라명 출력하기 (if - else문 활용)
package practice2_Q;
import java.io.IOException;
public class Q4 {
public static void main(String[] args) throws IOException {
String[] nation = {"America","Bangladesh", "Canada", "Demmark","Ezypt", "France",
"Greece","Hungary","Iceland","Jamaica","Korea",
"Lebanon","Malta","North Korea","Oman","Peru","Qatar","Romania","Singapore",
"Thailand","Uganda","Vietnam","W로 시작하는 나라는 없습니다.","X로 시작하는 나라는 없습니다.","Yemen","Zambia"};
String alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
System.out.print("문자 한 개를 입력하세요. >> ");
int ch = System.in.read();
//소문자 -> 대문자
if(ch >= 'a' || ch <= 'z') ch -= 32;
for(int i = 0; i < alpha.length(); i++) {
if(ch == alpha.charAt(i)) {
System.out.printf("%c로 시작하는 나라는 : %s",ch,nation[i]);
}
}
}
}
>> 결과
문자 한 개를 입력하세요. >> a
A로 시작하는 나라는 : America
3. 사칙연산 결과를 테이블 형식으로 출력
[1] 정상가격과 세일가격(30%) 출력하기 (정상가격 범위 : 20000원~30000원)
package practice2_Q;
public class Q5 {
public static void main(String[] args) {
System.out.println("정상가격 세일가격");
System.out.println("--------------------------");//14
for(int price = 20000; price <= 30000; price+=1000) {
System.out.printf("%-13d %.0f\n",price,price*0.7);
}
}
}
>> 결과
정상가격 세일가격
--------------------------
20000 14000
21000 14700
22000 15400
23000 16100
24000 16800
25000 17500
26000 18200
27000 18900
28000 19600
29000 20300
30000 21000
[2] 사용자에게 양의 정수 n을 받아, 1부터 n까지 합 구하기
package practice2_Q;
import java.util.Scanner;
public class Q6 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("양수 n : ");
int n = scanner.nextInt();
int sum = 0;
for(int i = 1; i <= n; i++) {
sum += i;
}
System.out.println("sum : "+sum);
scanner.close();
}
}
>> 결과
양수 n : 5
sum : 15
[3] 1부터 10까지 양의 정수 중 짝수의 곱을 구하기
package practice2_Q;
public class Q7 {
public static void main(String[] args) {
int n = 10;
int result = 1;
for(int i = 1; i <= n; i++) {
if(i % 2 == 0)
result = result * i;
}
System.out.println("result : "+result);
}
}
>> 결과
result : 3840
[4] 원주율을 구하는 공식에 따라 원주율 값 구하기
4/1 - 4/3 + 4/5 - 4/7 + 4/9 ..... |
package practice2_Q;
public class Q8 {
public static void main(String[] args) {
int n = 1;
int sign = 1;
double result = 0;
for(long i = 0; i < 2000000000; i++) {
result += sign*(4.0/n);
sign = -sign;
n += 2;
}
System.out.println("PI = "+result);
}
}
>> 결과
PI = 3.141592658505181
4. 제곱과 팩토리얼
[1] (제곱) 0~6까지의 제곱과 세제곱을 구하여 테이블 형식으로 출력
package practice2_Q;
public class Q9 {
public static void main(String[] args) {
System.out.println("기존 제곱 세제곱");
System.out.println("-----------------------------");
for(int i = 0; i < 7; i++) {
System.out.printf("%-10d%-10d%d%n",i,i*i,i*i*i);
}
}
}
>> 결과
기존 제곱 세제곱
-----------------------------
0 0 0
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
[2] (팩토리얼) 사용자에게 양의 정수 n을 받아, n! 구하기 (n! = n * (n-1)! // 단, 0!은 1이다)
package practice2_Q;
import java.util.Scanner;
public class Q10 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("n값 : ");
long n = scanner.nextInt();
long result = 1;
//f(x) = x * f(x-1)
//단, x가 0일 때 값은 1이다.
if(n == 0) {
result = 1;
}else {
for(long i = n; i > 0; i--) {
result = result * i;
}
}
System.out.printf("%d! = %d",n,result);
scanner.close();
}
}
>> 결과
n값 : 3
3! = 6
[※ 참고 : 팩토리얼 원리] - 팩토리얼이란 무엇일까? https://johnleeedu.tistory.com/23 - 팩토리얼을 왜 사용하나? https://ko.khanacademy.org/computing/computer-science/algorithms/recursive-algorithms/a/the-factorial-function - 팩토리얼의 수학 원리 https://www.youtube.com/watch?v=zSUMcsASTTo 팩토리얼은 고등수학에서 순열과 조합을 배우면서 배우는 것인데, 경우의 수를 구할 때 사용한다. 원리는 다음과 같다. 만약 A,B,C 세 사람이 앉는 순서를 정한다 할 때 경우의 수는 아래처럼 구할 수 있다. 0!이 1인 이유는, 아무것도 없을 때에 "없다"는 것도 하나의 경우에 해당하기 때문 |
[3] 실수의 거듭 제곱 값 구하기 (실수 : r, 정수 : n)
package practice2_Q;
import java.util.Scanner;
public class Q11 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("실수, 정수를 하나씩 입력하세요.(ex.5.34 7)");
double r = scanner.nextDouble();
int n = scanner.nextInt();
double result = 1;
for(int i = 0; i < n; i++) {
result = result * r;
}
System.out.printf("%f^%d = %f",r,n,result);
scanner.close();
}
}
>> 결과
실수, 정수를 하나씩 입력하세요.(ex.5.34 7)
5.231 3
5.231000^3 = 143.137741
'Language > Java' 카테고리의 다른 글
[자바의정석_복습] 객체지향 프로그래밍2 - 상속, 다형성 (0) | 2022.03.12 |
---|---|
[ 코딩 연습] 클래스와 메서드_올해 띠, 간지, 나이 구하기 (0) | 2022.03.12 |
[자바_복습] 중첩for문 활용_구구단/행렬/별찍기 (0) | 2022.03.11 |
[자바_복습] 제어문 예시 - 조건문과 반복문 각각 (0) | 2022.03.08 |
[자바_복습] 연산자 구체적으로 보기 (0) | 2022.03.07 |