package z_exam;
public class exam04 {
public static void main(String[] args) {
//o //[4-1] 다음의 문장들을 조건식으로 표현하라.
// 1. int형 변수 x가 10보다 크고 20보다 작을 때 true인 조건식
// 10 <= x && x <20
// 2. char형 변수 ch가 공백이나 탭이 아닐 때 true인 조건식
// " " != ch && '\t' != ch
// 3. char형 변수 ch가 ‘x' 또는 ’X'일 때 true인 조건식
// ch == ‘x' || ch == ’X'
// 4. char형 변수 ch가 숫자(‘0’~‘9’)일 때 true인 조건식
// ‘0’ <= ch && ch < ‘10’
// 5. char형 변수 ch가 영문자(대문자 또는 소문자)일 때 true인 조건식
// 'A' <= ch && ch <= 'Z' || 'a' <= ch && ch <= 'z'
// 6. int형 변수 year가 400으로 나눠떨어지거나 또는 4로 나눠떨어지고 100으로 나눠떨어지지
// 않을 때 true인 조건식
// (year%400 == 0 || year%4 == 0) && year%100 != 0
// 7. boolean형 변수 powerOn가 false일 때 true인 조건식
// boolean powerOn = false; //이미 선언했네!!!
// (!powerOn)
//boolean의 디폴트는 null
//1이 참 0이 거짓
// 8. 문자열 참조변수 str이 “yes”일 때 true인 조건식
// String str = "yes";
// equals
// str==equals("yes");
// "yes"==equals();
//o //[4-2] 1부터 20까지의 정수 중에서 '2 또는 3의 배수'가 '아닌' 수의 총합을 구하시오.
// int sum1 = 0; //합을 구하기 위한 변수 선언 및 초기화
// //for(){} //반복하는 어떤 수들에 대한 연산을 하기.
// //그런데 모르는 수에 대한 연산은 아니니까..
// for(int i=1;i<21;i++){ //필터 1 (1 <= i < 21) <-- 1부터 20까지의 정수
// //sum = sum + i; //일단 총합
// //필터 2 (i%2==0 || i%3==0) <-- 2의 배수 또는 3의 배수 조건
// if(i%2!=0 || i%3!=0){
// sum1 = sum1 + i; //궁극의 총합
// }
// }
// System.out.println(sum1);
//********************* 풀이 방식 3종
//for 2개로 1가지, for 1개로 2가지
//! //[4-3] 1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+10)의 결과를 계산하시오.
// int sum = 0;
// int s=1;
// for(int i = 1; i<11; i++){
// sum = sum + i;
// }
// System.out.println(sum);
// int sum = 0;
// for(int i = 1; i<11 ; i++){
// for(int j=1; i+1; j++){ //i+1
// sum = sum + j; //1+2
// }
// // sum = sum + i; //안쪽 for문 자체가 반복되는 거잖아~~~ 여기서 더하면 중복에 중복이지!
// }
// System.out.println(sum);
// int sum = 0;
// for(int i = 1; i<11 ; i++){
// for(int j=1; j<=i; j++){ //i+1
// sum = sum + j; //1+2
// }
// // sum = sum + i; //안쪽 for문 자체가 반복되는 거잖아~~~ 여기서 더하면 중복에 중복이지!
// }
// System.out.println(sum);
//참고 문제// 참고 문제
//수업 내용// 구구단에서 짝수단에 홀수 곱만 출력
// 안쪽부터 하는게 중요하구나!!!
// for(int dam=2 ; dam<10 ; dam++){
// if(dam%2==0){
// for(int gob=1 ; gob<10 ; gob++){
// if(gob%2!=0){
// System.out.println(dam +"*"+ gob +"="+ dam*gob);
// }
// }
// System.out.println(""); //결과가 다름점 주의!!!
// }
// System.out.println(""); //결과가 다름점 주의!!!
// }
// 풀이 방식 2종
//o! //[4-4] 1+(-2)+3+(-4)+... 과 같은 식으로 계속 더해나갔을 때,몇까지 더해야 총합이 100이상이 되는지 구하시오.
// //언제까지 더해야할지 모르니까 while
// int sum4 =0;// 합계
// int i = 1; //반복문용 변수
// while(true){
// sum4=(i%2==0)? sum4-i : sum4+i;
// if(sum4>=100){
// break;
// }
// i++;
// }
// System.out.println(i);
//0 //[4-5] 다음의 for문을 while문으로 변경하시오.
// for(int i=0; i<=10; i++) {
// for(int j=0; j<=i; j++){
// System.out.print("*");
// }
// System.out.println();
// }
// int i =0;
// while(i<=10){
// int j=0; // 여기가 포인트 !!!!!!!!! while 밖으로 나오질 못하니까!!!
// while(j<=i){
// System.out.print("*");
// j++;
// }
// System.out.println();
// i++;
// }
//o //[4-6] 두 개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하는 프 로그램을 작성하시오.
// int a=1;
// int b=1;
// while(a<6){
// b=6-a;
// System.out.println(a + "+" + b );
// a++;
// }
// int a=1;
// int b=1;
// for(int i= 1 ; i<7 ;i++){
// for(int j =1 ; j<7 ; j++){
// if(i+j==6){
// System.out.println(i +"+"+ j +"="+ i+j);
// }
// }
// }
//o //[4-7] Math.random()을 이용해서 1부터 6사이의 임의의 정수를 변수 value에 저장하는 코드를 완성하라. (1)에 알맞은 코드를 넣으시오.
// int value = (int)(Math.random()*6+1 ); //1<=i,7 //7-1 //+1
// System.out.println("value:"+value);
//! //[4-8] 방정식 2x+4y=10의 모든 해를 구하시오. 단, x와 y는 정수이고 각각의 범위는 0<=x<=10, 0<=y<=10 이다.
// [실행결과]
// x=1, y=2 x=3, y=1 x=5, y=0
// int x = 0;
//
// while(x<11){
// int y = 0;
// while(y<11){
// x=5-2*y;
// System.out.println("y="+ y +","+ "x=" + x);
// y++;
// }
// x++;
// }
// for(int x =0 ; x<11 ; x++){
// for(int y=0 ; y<11 ; y++){
// if(2*x + 4*y ==10){
// System.out.println("y="+ y +","+ "x=" + x);
// }
// }
// }
// //= while 로
// int x = 0;
// while(x<11){
// int y = 0;
// while(y<11){
// if(2*x+4*y==10){
// System.out.println("y="+ y +","+ "x=" + x);
// }
// y++;
// }
// x++;
// }
//! //[4-9] 숫자로 이루어진 문자열 str이 있을 때, 각 자리의 합을 더한 결과를 출력하는 코드를 완성하라.
//만일 문자열이 "12345"라면, ‘1+2+3+4+5’의 결과인 15를 출력이 출력되 어야 한다. (1)에 알맞은 코드를 넣으시오.
//[Hint] String클래스의 charAt(int i)을 사용
// [실행결과]
// 15
// String str = "12345";
// int sum = 0;
// for(int i=0; i < str.length(); i++) {
// char ch = str.charAt(i);
// //char char
// sum=sum+ch-'0'; // '0'이 핵심 !!!
// //int char
// }
// System.out.println("sum="+sum);
//! //[4-10] int 타입의 변수 num 이 있을 때, 각 자리의 합을 더한 결과를 출력하는 코드를 완성하라.
//만일 변수 num의 값이 12345라면, ‘1+2+3+4+5’의 결과인 15를 출력하라. (1) 에 알맞은 코드를 넣으시오.
//[주의] 문자열로 변환하지 말고 숫자로만 처리해야 한다.
//[실행결과]
//15
// int num = 12345;
// int sum = 0;
//
// for(int i=0; i<6; i++){
// int n = num%10; // 맨뒷자리 밑장빼기
// num=num/10; // 10으로 나누기. int니까 자동으로 1 이하는 절삭된다
// sum=sum+n; // i<6 니까 5번 이런 행위를 반복해서 나온 값을 더한다
// }
// System.out.println("sum="+sum);
//! //[4-11] 피보나치(Fibonnaci) 수열(數列)은 앞을 두 수를 더해서 다음 수를 만들어 나가 는 수열이다.
//예를 들어 앞의 두 수가 1과 1이라면 그 다음 수는 2가 되고
//num3 = num1+ num2
//그 다음 수는 1과 2를 더해서 3이 되어서 1,1,2,3,5,8,13,21,... 과 같은 식으로 진행된다.
//num1 = num2
//num2 = num3
//****벽돌깨기 게임처럼 옆으로 이동
//1과 1부터 시작하는 피보나치수열의 10번째 "수"는 무엇인지 계산하는 프로그램을 완성하시오.
//for(int i=3 ; i<11 ; i++) //10일때 밖으로 나온다
// Fibonnaci 수열의 시작의 첫 두 숫자를 1, 1로 한다.
// [실행결과]
// 1,1,2,3,5,8,13,21,34,55
// int num1 = 1;
// int num2 = 1;
// int num3 = 0; //세번째값
// System.out.print(num1+","+num2);
//
// for(int i=3 ; i<11 ; i++){
// num3 = num1+ num2;
// num1 = num2;
// num2 = num3;
// System.out.print(","+num3);
// }
//x //[4-12] 구구단의 일부분을 다음과 같이 출력하시오.
// [실행결과]
// 2*1=2 3*1=3 4*1=4
// 2*2=4 3*2=6 4*2=8
// 2*3=6 3*3=9 4*3=12
// 5*1=5 6*1=6 7*1=7
// 5*2=10 6*2=12 7*2=14
// 5*3=15 6*3=18 7*3=21
// 8*1=8 9*1=9
// 8*2=16 9*2=18
// 8*3=24 9*3=27
//1차
// for(int dan =2; dan<10 ; dan++){//밖에서 반복되는 수
// for(int gob =1; gob<4 ; gob++){//안에서 반복하는 수 부터 (1~3)
// System.out.println(dan +"x"+ gob +"="+ dan*gob);
// }
// }
//2차
// for(int gob=1 ; gob<4; gob++){
// System.out.println(" ");
// for(int dan=8 ; dan<10; dan++){
// System.out.print(dan +"x"+ gob +"="+ dan*gob+"\t");
// }
// }
// // + int dan=5 ; dan<8;
// // + int dan=8 ; dan<10;
//3차
// int gob=1 ;
// while(gob<4){
// System.out.println(" ");
// int dan=2;
// int aha=5;
//// if(dan*gob/dan == 3){
//// dan += 3;
//// aha += 3;
//// }
// while(dan<aha){
// System.out.print(dan +"x"+ gob +"="+ dan*gob+"\t");
// dan++;
// }
// gob++;
//
// if(4<=gob && gob<8 ){
// gob = 1;
// }
//
// }
// //4차
// for(int gob=1 ; gob<4; gob++){
// System.out.println(" ");
// for(int dan=2 ; dan<5; dan++){
// System.out.print(dan +"x"+ gob +"="+ dan*gob+"\t");
// }
// }
// for(int gob=1 ; gob<4; gob++){
// System.out.println(" ");
// for(int dan=5 ; dan<8; dan++){
// System.out.print(dan +"x"+ gob +"="+ dan*gob+"\t");
// }
// }
// for(int gob=1 ; gob<4; gob++){
// System.out.println(" ");
// for(int dan=8 ; dan<10; dan++){
// System.out.print(dan +"x"+ gob +"="+ dan*gob+"\t");
// }
// }
//!X //[4-13] 다음은 주어진 문자열(value)이 숫자인지를 판별하는 프로그램이다. (1)에 알맞 은 코드를 넣어서 프로그램을 완성하시오.
// String value = "12o34";
// char ch = ' ';
// boolean isNumber = true;
//// // 반복문과 charAt(int i)를 이용해서 문자열의 문자를
//// // 하나씩 읽어서 검사한다.
// for(int i =0; i<5 ; i++){
// ch=value.charAt(i);
// if(!('0'<=ch && ch<='9')){
// isNumber = false;
// }
// }
// if(isNumber){
// System.out.println("숫자이다");
// }else{
// System.out.println("숫자가 아니다");
// }
//! //[4-14] 다음은 숫자맞추기 게임을 작성한 것이다. 1과 100사이의 값을 반복적으로 입력 해서 컴퓨터가 생각한 값을 맞추면 게임이 끝난다.
//사용자가 값을 입력하면, 컴퓨터는 자 신이 생각한 값과 비교해서 결과를 알려준다. 사용자가 컴퓨터가 생각한 숫자를 맞추면 게임이 끝나고 몇 번 만에 숫자를 맞췄는지 알려준다.
//(1)~(2)에 알맞은 코드를 넣어 프 로그램을 완성하시오.
// 1~100사이의 임의의 값을 얻어서 answer에 저장한다.
// [실행결과]
// 1과 100사이의 값을 입력하세요 :50 더 큰 수를 입력하세요.
// 1과 100사이의 값을 입력하세요 :75 더 큰 수를 입력하세요.
// 1과 100사이의 값을 입력하세요 :87 더 작은 수를 입력하세요.
// 1과 100사이의 값을 입력하세요 :80 더 작은 수를 입력하세요.
// 1과 100사이의 값을 입력하세요 :77 더 작은 수를 입력하세요.
// 1과 100사이의 값을 입력하세요 :76 맞췄습니다.
// 시도횟수는 6번입니다.
// int answer = (int)(Math.random()*101)+1; //**컴퓨터가 생각한 랜덤 값(사용자와 비교되는 값)***시작점은 뒤에!!!
// System.out.println(answer);
// int input = 0; // 사용자입력을 저장할 공간
// int count = 0; // 시도횟수를 세기위한 변수
//
// // 화면으로 부터 사용자입력을 받기 위해서 Scanner 클래스 사용
// java.util.Scanner s = new java.util.Scanner(System.in);
// do {
// count++;
// System.out.print("1과 100사이의 값을 입력하세요 :");
// input = s.nextInt(); // 입력받은 값을 변수 input에 저장한다.
//
// if(input==answer){
// System.out.println(input+ "\n 맞췄습니다.");
// System.out.println("시도횟수는" +count+ "번입니다.");
// System.out.println(answer);
// break;
// }else if(input<answer){
// System.out.println(input+ "\n 더 큰 수를 입력하세요.");
// System.out.println(answer);
// }else{
// System.out.println(input+ "\n 더 작은 수를 입력하세요.");
// }
// } while(true); // 무한반복문
//x// [4-15] 다음은 회문수를 구하는 프로그램이다. 회문수(palindrome)란, 숫자를 거꾸로 읽어도 앞으로 읽는 것과 같은 수를 말한다.
// 예를 들면 ‘12321’이나 ‘13531’같은 수를 말한 다. (1)에 알맞은 코드를 넣어서 프로그램을 완성하시오.
// [Hint] 나머지 연산자를 이용하시오.
// int tmp = number;
// int number = 12321;
// int result =0; // 변수 number를 거꾸로 변환해서 담을 변수
// while(tmp !=0) {
// }
// if(number == result)
// elseSystem.out.println( number + "는 회문수 입니다.");
// System.out.println( number + "는 회문수가 아닙니다.");
// int number = 12321;
// int tmp = number;
//
// int result = 0;
//
// while (tmp != 0) {
// result *= 10;
// result = result + tmp % 10;
// tmp = tmp / 10;
// }
//
// if (number == result) {
// System.out.println(number + "는 회문수 입니다.");
// } else {
// System.out.println(number + "는 회문수가 아닙니다.");
// }
//
//
// String value = "12o34";
// char ch;
// boolean isNumber = true;
//
// for (int i = 0; i < value.length(); i++) {
// ch = value.charAt(i);
// if (ch < 48 || ch > 57) {
// isNumber = false;
// }
// }
//
// if (isNumber) {
// System.out.println(value + "는 숫자입니다.");
// } else {
// System.out.println(value + "는 숫자가 아닙니다.");
// }
}
}
'새로워지기 > 서른의 생활코딩' 카테고리의 다른 글
7일차) 배열 array 20180607_am (0) | 2018.06.07 |
---|---|
7일차)데이터베이스를 생성,수정 복제한다 20170607_pm (0) | 2018.06.07 |
6일차) 4장 연습문제 20180606_am 1차시도 (0) | 2018.06.06 |
6일차) for문 while문 개념 및 예제 20180605_am (0) | 2018.06.05 |
6일차) 주요 내용 복습 및 외래키 정의 20180605_pm (0) | 2018.06.05 |
댓글