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번째까지만 출력해 주면 됩니다.




+ Recent posts