"제로기초학 자바언어-절강대학-옹케"3주차 순환

다음은 개인 학습 노트와 연습 문제 정리 과정: 제로 기초학 자바 언어-절강대학-옹케@중국대학 MOOChttps://www.icourse163.org/course/ZJU-1001541001
문서 목록
  • 교실 노트
  • while 순환
  • do-while 순환
  • 산평균수
  • 퀴즈 게임
  • 소형 테스트
  • 프로그래밍 문제
  • 작업 1.패리티 개수(5점)
  • 문제풀이 코드
  • 숙제2.디지털 특징치(5점)
  • 문제풀이 코드
  • 교실 노트
    while 순환
    while (<    >)
    {
    	<     >;
    }
    
  • 조건이 충족되었는지 판단한 다음에 순환체를 집행하여 조건이 충족되지 않을 때까지 한다.
  • 한 번도 실행하지 않을 수 있습니다.

  • do-while 순환
    do {
    	<     >;
    } while(<    >); //        
    
  • 들어갈 때 검사하지 않고 1라운드를 집행한 후 조건이 충족되었는지 다시 검사하고 만족하면 순환체를 계속 집행한다.
  • 최소한 한 번 집행한다.

  • 예.
    평균수를 계산하다
    Scanner in = new Scanner(System.in);
    int number;
    int count = 0;
    int sum = 0;
    
    number = in.nextInt();
    
    while(number != -1)	{
    	sum += number;
    	count ++;
    	number = in.nextInt();
    }
    
    if (count > 0) {
    	System.out.println((double)(sum)/count);
    }
    
    Scanner in = new Scanner(System.in);
    int number;
    int count = 0;
    int sum = 0;
    
    do {
    	number = in.nextInt();
    	if(number != -1) {
    		sum += number;
    		count ++;	
    	}
    } while (number != -1);
    
    if (count > 0) {
    	System.out.println((double)(sum)/count);
    }
    

    퀴즈 게임
    Scanner in = new Scanner(System.in);
    int number = (int)(Math.random()*100+1);
    //      Math.random()       [0,1)        
    // [0,1)-->[0,100)-->[1,100]
    
    int count = 0;
    int a;
    
    do {
    	a = in.nextInt();
    	count ++;
    	if(a > number) {
    		System.out.println("   ");
    	} else if(a < number) {
    		System.out.println("   ");
    	}
    } while (a != number);
    
    System.out.println("      !     "+count+" 。");
    
  • 왜 방법이 정확하면 100 이내의 수를 최대 7번까지 맞히면 되나요?

  • 이분법: 어떤 수에 대해 이분법을 사용하는 최소 횟수의 공식은 2n>k2^n>k2n>k이고 그 중에서 n은 최소 횟수이며 k는 모두 몇 수이다.272^7 27은 128이고 100보다 크기 때문에 100 이내를 판단할 수 있는 것은 7회입니다.
    소형 테스트
  • 다음 중 변수 x에서 개수를 얻을 수 있는 연산은 무엇입니까?A. x/10 B. x%10 C. x*10 D. x=10
    B
  • while 순환의 조건이 충족되었을 때 순환이 계속되고do-while의 조건이 충족되었을 때 순환이 끝난다.
    ×
  • 다음 코드 세션의 실행이 끝난 후 변수 i의 값은 얼마입니까?
    int i = 1;
    do {
        i = i+5} while (i<17);
    

    21

  • 프로그래밍 문제
    숙제패리티 개수(5점)
  • 제목의 내용은 프로그램이 일련의 정수 데이터를 읽어야 한다. 입력-1은 입력이 끝난 것을 의미하고 -1 자체는 입력한 데이터가 아니다.프로그램이 읽은 데이터의 홀수와 짝수의 개수를 출력합니다.
  • 입력 형식은 일련의 정수이고 정수의 범위는 (0100000)이다.-1을 입력하면 입력이 끝납니다.
  • 출력 형식은 두 개의 정수로 첫 번째 정수는 데이터에 읽힌 홀수의 개수를 나타내고 두 번째 정수는 데이터에 읽힌 짝수의 개수를 나타낸다.두 정수는 공백으로 구분됩니다.
  • 샘플 9 3 4 2 5 7 - 1
  • 입력
  • 출력 예제 42
  • 문제풀이 코드
    import java.util.Scanner;
    
    public class Main {
    
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    
    		int number = in.nextInt(),
    			odd = 0,
    			even = 0;		
    		
    		while (number != -1) {
    			if (number % 2 == 0)
    			{
    				even ++;
    			}
    			else
    			{
    				odd ++;
    			}
    			number = in.nextInt();
    		}
    		System.out.println(odd + " " + even);
    	}
    
    }
    

    숙제디지털 특징값(5점)
  • 제목 내용이 디지털 특징 값을 구하는 데 자주 사용하는 인코딩 알고리즘이고 짝짓기 특징은 간단한 특징 값이다.하나의 정수에 대해 한 자리부터 한 자리의 숫자에 대해 번호를 매긴다. 한 자리는 1번이고 열 자리는 2번이다. 이런 식으로 유추한다.이 정수는 n위의 숫자를 x로 기록하고, x와 n의 짝수가 같으면 다음 1을 기록하고, 그렇지 않으면 다음 0을 기록한다.정수의 순서에 따라 대응 위치의 짝짓기를 나타내는 0과 1을 모두 기록하면 이진법이 형성된다.예를 들어 342315에 대해 이 이진 숫자는 001101이다.이 계산은 다음 표에 나와 있습니다.
    숫자.
    3
    4
    2
    3
    1
    5
    디지털
    6
    5
    4
    3
    2
    1
    숫자.
    기이하다
    우연히
    기이하다
    우연히
    우연히
    기이하다
    디지털
    기이하다
    우연히
    우연히
    기이하다
    우연히
    기이하다
    패리티 일치
    0
    0
    1
    1
    0
    1
    이진 비트 값
    32
    16
    8
    4
    2
    1
    2진수 값에 따라 1의 비트를 더하면 결과 13이 나온다.너의 프로그램은 마이너스 정수가 아닌 정수를 읽어야 한다. 정수의 범위는 [0100000]이다. 그리고 상술한 알고리즘에 따라 짝짓기를 나타내는 그 2진수 숫자를 계산하여 그에 대응하는 10진수 값을 출력해야 한다.알림: 정수를 오른쪽에서 왼쪽으로 분해하고, 숫자는 매번 1을 더하고, 이진법은 매번 2를 곱한다.
  • 입력 형식은 마이너스가 아닌 정수이고 정수의 범위는 [01000000]이다.
  • 계산 결과를 나타내는 정수를 출력합니다.
  • 입력 예제 342315
  • 출력 샘플 13
  • 문제풀이 코드
    import java.util.Scanner;
    
    public class Main {
    
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    
    		int number = in.nextInt(),
    			digit, //      
    			binary = 1, //      ,       1			
    			count = 1, //     
    			result = 0; //    
    		
    		do {
    			digit = number % 10; //           
    			
    			if ( digit % 2 == count % 2)
    			{ //              
    				result += binary; //           
    			}
    			
    			//                
    			number /= 10; //          
    			binary *= 2; //         2
    			count ++; //      1
    		} while (number > 0); //     
    		
    		System.out.println(result);
    	}
    
    }
    

    좋은 웹페이지 즐겨찾기