-
자바 - while 문프로그래밍/JAVA 자바 2021. 7. 7.반응형
while문 초반에 작업한거 노트북에서 컴퓨터로 옮기다가 다 날아감 ㅜㅜ
남은 while 문 가져다가 공부를 해보자..
정수를 입력 받아 1부터 입력받은 수 까지의 합, 짝수 합, 홀수 합을 구해라
package ex0707; import java.util.Scanner; public class Ex16_while { public static void main(String[] args) { // 정수를 입력 받아 1부터 입력받은 수 까지의 합, 짝수 합, 홀수 합을 구해라 Scanner sc = new Scanner(System.in); int x = 0; int odd = 0; int even = 0; int s = 0; int n = 0; System.out.println("정수 입력 : "); x = sc.nextInt(); while(n<x) { n++; s+=n; if(n%2 == 0) { even += n; }else { odd += n; } } System.out.printf("1~100까지 합 : %d\n 짝수 합: %d\n 홀수 합:%d\n",s,even,odd); sc.close(); } }
1-2+3-4+5-6...+9-10 의 연산 결과를 출력해라
package ex0707; public class Ex17_whileQ2 { public static void main(String[] args) { // 1-2+3-4+5-6...+9-10 의 연산 결과를 출력해라 int n = 0; int s = 0; /* while(n<10) { n++; s+=n; n++; s-=n; } */ /* while(n<10) { n++; if(n%2==0) { s-=n; }else { s+=n; } } */ while(n<10) { n++; s = n%2 == 0 ? s-n : s+n; } System.out.println(s); } }
A~Z까지 영문자를 한줄에 5개씩 출력
package ex0707; public class Ex18_whileQ3 { public static void main(String[] args) { // A~Z까지 영문자를 한줄에 5개씩 출력 char c; int cnt; c='A'; cnt=0; while(c<='Z') { System.out.print(c+"\t"); ++cnt; if(cnt%5==0) { System.out.println(); } c++; } } }
1~100까지 수중에서 3또는 5의 배수 합과 평균을 구하시오
package ex0707; public class Ex19_whileQ4 { public static void main(String[] args) { // 1~100까지 수중에서 3또는 5의 배수 합과 평균을 구하시오 int n=0; int s=0; int cnt=0; while(n<100) { n++; if(n%3==0 || n%5==0) { cnt++; s+=n; } } System.out.println("합:"+ s +" "+"평균"+ s/cnt); } }
1~100 까지의 합이 100을 넘는 최소의 n 과 그때의 합을 출력
package ex0707; public class Ex20_whileQ5 { public static void main(String[] args) { // 1~100 까지의 합이 100을 넘는 최소의 n 과 그때의 합을 출력 int n =0; int s =0; while(s<=100) { n++; s+=n; } System.out.println(n+","+s); } }
두 정수 입력 받는다
if 문을 이용해서 누가 적고 큰지 구한다
while문으로 적은수에서 큰수까지의 합을 구해라package ex0707; import java.util.Scanner; public class Ex21_whileQ6 { public static void main(String[] args) { // 두 정수 입력 받는다 // if 문을 이용해서 누가 적고 큰지 구한다 // while문으로 적은수에서 큰수까지의 합을 구해라 Scanner sc = new Scanner(System.in); int a,b,c; int s = 0; System.out.println("두 정수 입력 : "); a = sc.nextInt(); b = sc.nextInt(); if(a<b) { c=a; a=b; }else { c=b; } while(c<=a) { s+=c; c++; //System.out.println(s); } System.out.println(s); sc.close(); } }
// x는 100부터 시작해서 1초마다 2씩 증가
// y는 0부터 시작해서 1초마다 5씩 증가
// 몇초후에 y가 x를 따라잡나 구하라
// 따라 잡았을 당시의 x,y값 구하라package ex0707; public class Ex22_whileQ7 { public static void main(String[] args) { // x는 100부터 시작해서 1초마다 2씩 증가 // y는 0부터 시작해서 1초마다 5씩 증가 // 몇초후에 y가 x를 따라잡나 구하라 // 따라 잡았을 당시의 x,y값 구하라 int x,y,t; x=100; y=0; t=1; while(y<=x) { x=x+2; y=y+5; t++; } System.out.println(x+", "+y); System.out.println("걸린시간 : "+t+"초"); } }
1+2+4+7+11+ ..의 20번째 항까지의 합을 구해라
package ex0707; public class Ex23_whileQ8 { public static void main(String[] args) { // 1+2+4+7+11+ ..의 20번째 항까지의 합을 구해라 int s=0, t=1, n=0; while(n<20) { //System.out.println(t); s+=t; n++; t+=n; } System.out.println("결과 : "+s); } }
피보나치수열 1+1+2+3+5+8+13+21 합을 구하라
package ex0707; public class Ex24_whileQ9 { public static void main(String[] args) { // 피보나치수열 1+1+2+3+5+8+13+21 합을 구하라 int a=0; int b=1; int c=0; int s=1; int n=1; while(n<8) { c=a+b; s+=c; a=b; b=c; n++; } System.out.println("결과 : "+s); } }
아래는 응용문제
구구단 가로로 출력하기
package ex0707; public class test01 { public static void main(String[] args) { // 구구단 가로로 출력 int dan=1; while(dan<=9) { int n=2; while(n<=9) { System.out.print(n+""+"*"+dan+" "+"="+dan*n+"\t\t"); n++; } System.out.println(); dan++; } } }
결과 :
1-2+3-4... 연산에서 연산결과가 100이상이 되는 최소의 수와 그때의 합을 출력
package ex0707; public class test02 { public static void main(String[] args) { // 1-2+3-4... 연산에서 연산결과가 100이상이 되는 최소의 수와 그때의 합을 출력 // 응용문제1 int s=0; int n=0; while(s<100) { n++; s = n%2==0 ? s-n : s+n; } System.out.printf("n : %d, s : %d",n,s); } }
결과 :
package ex0707; import java.util.Scanner; public class test03 { public static void main(String[] args) { // 응용문제 2 Scanner sc = new Scanner(System.in); int i,x; int n=0; System.out.println("정수입력"); x = i = sc.nextInt(); if(i<0) { i=i*-1; } while(i>0) { i=i/10; n++; } System.out.println(x+"은 "+n+"자리 정수"); sc.close(); } }
최대 공약수 & 최소 공배수 구하기
package ex0707; import java.util.Scanner; public class test04 { public static void main(String[] args) { // 응용문제3 Scanner sc = new Scanner(System.in); int a,b,a2,b2; int big,small; int gcd, lcm; int na; System.out.println("두 정수 입력"); a = sc.nextInt(); b = sc.nextInt(); if(a>=b) { big = a; small = b; }else { big = b; small = a; } //a,b중 큰수 작은수 나누기 a2 = big; b2 = small; //최소 공배수 구할때 필요한 본래 자연수 값 2개 while(true) { na = big%small; if(na == 0) { //최대공약수 = 자연수 값 2개 큰놈 작은놈의 나머지값이 0이 나올때까지 나누고 0 나왔을때의 작은놈이 최대공약수 gcd = small; lcm = (a2*b2)/gcd; //최소공배수 = 첫 자연수 값 2개 곱한 값 나누기 최대공약수 System.out.println("최대공약수 : "+gcd); System.out.println("최소공배수 : "+lcm); break; }else { big = small; small = na; } } sc.close(); } }
반응형'프로그래밍 > JAVA 자바' 카테고리의 다른 글
break문 / continue문 / 배열 (0) 2021.07.11 do-while문 / for문 / 별찍기 / 가위바위보 (0) 2021.07.09 if 조건문 / switch문 (0) 2021.07.06 문자열 마무리 / 삼항 연산자 / 비트 단위 부정 연산자 (0) 2021.07.05 Java 입력문 Scanner / 진수 내용 / 주석 / 나머지 연산자 및 초를 입력 받아 시 분 초로 나타내기 (0) 2021.07.02