[4-1]
[4-2]
public class Ex4_2 {
public static void main(String[] args) {
int sum = 0;
int x = 0; // i를 변경하면, 변경한 값 그대로 다시 for문을 돈다.
int cnt =0;
for(int i=1; sum<100; i++) { //sum<=100으로 하면 sum이 100인 상황에서 for문이 한번 더 돌아감
if(i%2==0) {
x= -i;
}else {
x=i;
}
sum += x;
cnt++;
}
System.out.println(sum);
System.out.println(cnt);
}
}
[4-3]
한참봤다. totalSum의 개념을 찾긴 했지만, 정확히 풀지 못했다.
package javaJungsukEx;
public class Ex4_3 {
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<=20; i++) {
if(i%2!=0 && i%3!=0) {
System.out.println(i);
sum += i;
}
}
System.out.println(sum);
}
}
[4-4]
++로 적용된 값이나 할당된 값이 그대로 올라가서 for문을 다시 돈다!
기억하자!!
package javaJungsukEx;
public class Ex4_2 {
public static void main(String[] args) {
int sum = 0;
int x = 0;
int cnt =0;
for(int i=1; sum<100; i++) { //sum<=100으로 하면 sum이 100인 상황에서 for문이 한번 더 돌아감
if(i%2==0) {
x= -i;
}else {
x=i;
}
sum += x;
cnt++;
}
System.out.println(sum);
System.out.println(cnt);
}
}
[4-5]
한참을 헤맸다. 어디에서 ++을 시켜야할지..알고보면 쉬운 거였는데,
int i =0;
while(i <10) {
int j =0;
while(j<=i) {
System.out.print("*");
j++;
}
System.out.println();
i++;
[4-6]
package javaJungsukEx;
public class Ex4_3 {
public static void main(String[] args) {
// 두 눈의 합이 6이되는 경우의 수를 출력하는 프로그램
for(int i=1; i<7; i++) {
for(int j=1; j<7; j++) {
if(i+j==6) {
System.out.println(i +","+ j);
}
}
}
//무작위로 던진 주사위의 눈이 6이되면 멈추는프로그램
int x, y;
boolean run = true;
while(run) {
x= (int)(Math.random()*5)+1;
y= (int)(Math.random()*5)+1;
System.out.println(x +","+ y);
if(x+y==6) {
run = false;
}
}
}
}
[4-7]
package javaJungsukEx;
public class Ex4_7 {
public static void main(String[] args) {
String str = "12345";
int sum =0;
for(int i =0; i<str.length(); i++) {
char c = str.charAt(i);
System.out.println(c);
int x = c+0;
sum += x;
}
System.out.println("sum = "+sum);
}
}
//각 자리를 char로 나누고 더해야한다.
//문자열->문자->연산 시 유니코드 숫자가 아닌 문자 그대로의 숫자로 연산해야 하는 것이 포인트 -> 문자 '0'을 빼준다.
// 유니코드 48인 '0'이 기준점이되어 유니코드 29인 '1'에 '0'을 뺴면 49-48 = 1이라는 결과가 나옴
[4-8]
public class Ex4_8 {
public static void main(String[] args) {
int value =(int)(Math.random()*6)+1;
System.out.println("value : "+value);
}
}
[4-9]
이번 문제는 완벽히 틀렸다.
처음 숫자를 어떻게 분리할까 고민하다가 10000 - 1000 - 100 -10 이렇게 나누면 각 자리수가 나올 것으로 착각을 했다
그리고 a += 1; 이건 a = a+1;과 같다 기억하자
public class Ex4_9 {
public static void main(String[] args) {
int num = 12345;
int sum = 0;
while(num>0) {
sum += num%10;
num /= 10;
}
System.out.println("sum : " +sum);
}
}
[4-10]
import java.util.Scanner;
public class Ex4_10 {
public static void main(String[] args) {
int answer = (int)(Math.random()*10)+1;
int input =0;
int count =0;
Scanner s = new Scanner(System.in);
do {
count++;
System.out.println("1과 100 사이의 값을 입력하세요");
input = s.nextInt();
if(answer>input) {
System.out.println("더 큰 수를 입력하세요.");
}else if(answer<input) {
System.out.println("작은 수를 입력하세요.");
}else {
System.out.println("정답입니다! 시도한 횟수는 "+count+"번 입니다.");
break;
}
}while(true);
}
}
'JAVA > 자바의 정석(feat.남궁성님)' 카테고리의 다른 글
[자바의정석] 연습문제 풀이 6단원 (0) | 2021.12.19 |
---|---|
[자바의정석] 연습문제 풀이 5단원 (0) | 2021.12.19 |
[자바의정석] 연습문제 풀이 3단원 (0) | 2021.12.16 |
[자바의정석] 문제풀이 6-9 (0) | 2021.12.14 |