합이 100이상이되는 최소의 수를 구하기 위해서 s<100

s<=100이면 100이상이 되는 두번째 수이다. 

최소의 수는 n으로 카운팅을 하고

합의 경우

홀수면 더하기 짝수면 빼기 이므로 

if (n%2==0) {

s+=-n;

} else {

s+=n;

}

으로 준다.

++

1부터 시작이고 2는 빼고 3는 더하고를 반복해야하므로. 

 

5! 구하기 

 

10 ! = 10*9*7*6*5*4*3*2*1 을 의미한다.

 

int n, s, input;

 

System.put,print("양수 ? ");

input=sc.nextInt();

 

n=1;

s=0;

while(n<=input){

s+=n;

n+=2;

} System.out.println("결과 : " +s);

== 

while(n<=input){

n+=2;

s+=n;

} System.out.println("결과 : " +(s+1));

n 에 먼저 2를 해주게 되면 1의 값은 더하지 않고 3부터 입력한 수까지의 홀수를 더하므로 마지막에 (s+1)을 해줘야함.

 

 

밑에 주석은 처음 풀어보라고 했을 때 

적어 놨던 건데 while 뒤를이상하게 했음. 뭔 생각으로 저렇게했는지 감이안잡히는군..

n=s=0;
while(n++ <10) { // 10번 반복
s+=n; 
}

n을 먼저 사용한 후에 n+1 이므로 즉 0~9까지 10번

n=s=0;
while(++n < 10) { // 9번반복
s+=n;
}

n+1을 한 후에 그 값을 사용하므로 1~9까지 9번

n=s=0;
while(++n <= 10) { // 10번반복
s+=n;
}

n+1을 한 후에  1~10까지 10번

 

따라서 헷갈리는 경우가 많으므로 while 조건문에는 ++ 연산은 주의하자!

1~10까지 정수 출력

int n;

n=0;

 

while(n<10) {

n++;

System.out.print(n+"\t");

}

n이 0~9까지 10번이 실행됨.

System.out.println();

System.out.println(n);

 

9가 들어가면 n의 값은 10이된다.따라서 while이 false가 되므로 아예 실행하지 않기 때문에

마지막에 들어가는 10은 따로 출력한다. 

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0707_Ex04_while : 1~10까지의 합  (0) 2021.07.07
0707_Ex03_while :1~10까지 더한 값 구하기  (0) 2021.07.07
0707_이전시간 복습  (0) 2021.07.07
0707_Ex01_switch  (0) 2021.07.07
0706_Ex06_switch  (0) 2021.07.07

제어문
if 문
단순 if 문
if 다음의 조건이 참일 경우, 특정 문장을 수행하고자 할 때 사용되는 문장.
if(조건) {
문장1;
}

if(조건){
문장1;
} else {
문장2;

문장3;

다중 선택 if문(else if문)
if 문의 처음 조건식이 거짓일 경우 계속된 다른 범위의 값을 추출하기 위해 else 쪽에 if문을 두는 제어 구조
if(조건){
문장1;
} else if {
문장2;
} else {
 문장3;
}

switch ~ case문
정수와 관련된 자료형 byte, short, char, int, (long형 제외)만 사용할 수 있다.
case 다음의 값으로 변수나 수식을 불가능하며 리터널(상수)만 가능

switch(변수 또는 수식) {
case 상수 : 문장1; break;
case 상수 : 문장2; break;
case 상수 : 문장3; break;
default : 문장4; 
}

switch (n) {

case 3 : System.out.print("*");

case 2 : System.out.print("#");

case 1 : System.out.print("$");

default : System.out.print("입력오류"); 

}

입력받은 n 이 3이면 *#$를 출력

2이면 #$를 출력 

1이면 $를 출력

다른 값들은 입력오류 를 출력한다.

3이면 3, 2, 1을 실행

아니면 2인지확인하고 2이면 2, 1을 실행 ... 이런식으로 진행된다. 

 

switch (n) {

case 3 : System.out.print("*"); break;

case 2 : System.out.print("#"); break;

case 1 : System.out.print("$"); break;

default : System.out.print("입력오류"); break;

}

break;가 있으면 3이면 3만 실행.

string s;

if (n%2==0 && n%3==0) {

 s = "6의 배수";

} else if (n%2==0) {

s = "2의 배수";

} else if (n%3==0) {

s = "3의 배수";

} else {

s = "2또는 3의 배수가 아닙니다.";

}

 

위는 내가 이것저것 해보려고 시도해본 것들.

 

+ Recent posts