[TIL] - 변수, 연산자 문제풀이

장동희·2023년 2월 13일
0

TIL

목록 보기
1/16

오늘은 프로그래밍 기초1 수업을 시작해서 변수와 연산자를 배웠다.
변수와 연산자 개념은 따로 정리하였고 TIL로는 문제풀이로 하기로 결정했다.

1. 변수 문제풀이

문제

public class Exercise2_8{
    public static void main(String[] args){
       int x = 1;
       int y = 2;
       int z = 3;
       /*
          알맞은 코드를 넣어 완성하세요.
       */
       System.out.println("x="+x);
       System.out.println("y="+y);
       System.out.println("z="+z);
    }
}
//예상 결과 : x=2, y=3, z=1

문제 풀이

int tmp = x;
x = y;
y = z;
z = tmp;

2. 연산자

문제

//3-6. 아래는 화씨(Fahrenheit)를 섭씨(Celcius)로 변환하는 코드이다.
//변환 공식이 'C = 5/9*(F-32)'라고 할 때, 빈 칸에 알맞은 코드를 넣으시오.
// 단, 변환값은 소수점 셋째자리에서 반올림하며, Math.round() 함수를 사용하지 않고 처리할 것!
class Exercise3_6{
   public static void main(String[] args){
      int fahrenheit = 100;
      float celcius = (/*빈 칸*/);
      
      System.out.println("Fahrenheit:"+fahrenheit);
      System.out.println("Celcius:"+celcius);
   }
}
//예상 결과 : Fahrenheit:100, Celcius:37.78

오늘 풀어본 문제중에 제일 생각을 많이했던 문제였다.
37.78이라는 결과가 나와야하는데 자꾸 37.77이나왔고 Math.round() 함수를 사용하지 않으려고 하다보니 어려웠다.

시도해봤던 코드

//첫번째 시도
float celcius = (int)(5/9 * (fahrenheit - 32) * 100)/100.0;
//두번째 시도
float celcius = (int)(5/9f * (fahrenheit - 32) * 100)/100.0;

문제 풀이

float celcius = (int)(5/9f * (fahrenheit-32) * 100 + 0.5)/100.0f;

(5/9f (fahrenheit-32) 100 + 0.5 를 하여 3777.7을 3778.2로 만들고 다시 /100.0f를 하여 37.78을 만들었다.

0개의 댓글