20151019
*이문제는 Scanner 와 System.out.println() 출력문을 알고 있어야 합니다.
*이문제는 dovelet 에 있는 알고리즘 문제입니다.
네 수의 평균/average
프로그램 명: average
제한시간: 1 초
네 정수를 입력 받아 평균을 출력하는 프로그램을 작성하세요.
정수 입력 사이에는 공백으로 구분되며 , 평균은 소수 2 째 자리까지 출력하세요.(소수 3 번째 자리에서 반올림)
입력
입력은 1 에서 100 사이의 자연수가 입력된다.
출력
입출력 예
입력 7 7 7 7 출력 7.00 입력 2 5 9 5 출력 5.25
문제 풀이
1) 풀이
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int d = sc.nextInt(); double result = (a+b+c+d)/4.0; result = Math.round(result*100); System.out.println(result*0.01); } }
2) 풀이
import java.io.PrintStream; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); PrintStream p = System.out; double a = sc.nextInt(); double b = sc.nextInt(); double c = sc.nextInt(); double d = sc.nextInt(); p.printf("%.2f",(a+b+c+d)/4.0); } }
*1번 풀이와 2번 풀이 코드 내용은 같습니다. 다만 2번 풀이는 c언어에서 많이 하는 메타문자를 사용 했습니다.
우선 4개의 자연수 값을 입력 받기 위해서 a,b,c,d 변수를 선언을 하고 그 변수에 입력값을 받습니다.
그 다음 4개의 값을 더하고 4로 나눈 평균 값을 실수형 변수에 저장합니다. 그 다음 방법은 2가지 종류로
1) Math 클래스가 가지고 있는 round() 함수를 사용합니다. 반올림 해주는 함수죠 예)10.6 => 11
원하는 소수점 3번째 자리에서 반올림을 하기위해서 100을 곱해 소수점 2째 자리 까지는 정수형으로 바꿔 줍니다. 그런다음 변수에 저장을 하고 그 값을 다시 0.01을 곱해서 소수점을 복원 시켜 줍니다.
2)C 언어에서 주로 사용하는 개념인듯 합니다. C는 잘 몰라요.
똑같이 더한값을 실수형인 4.0 으로 나눠주면 소수점까지 결과값이 나옵니다. 그걸 %.2f 를 사용해서 소수점 2번째까지만 출력해 주면 됩니다.
'알고리즘(dovelet 문제풀이) > 1층' 카테고리의 다른 글
몫과 나머지 구하기/q_r (몫과 나머지 구하기 알고리즘) (0) | 2015.10.19 |
---|---|
섭씨온도를 화씨온도로 변환/CtoF(섭씨온도를 화씨 온도로 변환 알고리즘) (0) | 2015.10.19 |
삼각형 넓이 구하기/triangle (삼각형 넓이 구하기 알고리즘) (0) | 2015.10.19 |
기본 연산/op (기본 연산/op 알고리즘) (0) | 2015.10.18 |
두수의 교환/swap(두수의 교환 알고리즘) (0) | 2015.10.18 |