오늘은 프로그래밍 기초1 수업을 시작해서 변수와 연산자를 배웠다.
변수와 연산자 개념은 따로 정리하였고 TIL로는 문제풀이로 하기로 결정했다.
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;
//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을 만들었다.