프로그램 설계 입문 - C 언어 옹케 3주차 프로그래밍 연습

1 패리티 개수(5점)
제목 내용
당신의 프로그램은 일련의 정수 데이터를 읽어야 합니다. 입력-1은 입력이 끝난 것을 의미하고, -1 자체는 입력한 데이터가 아닙니다.프로그램이 읽은 데이터의 홀수와 짝수의 개수를 출력합니다.
입력 형식
일련의 양의 정수, 정수의 범위는 (0100000)입니다.-1을 입력하면 입력이 끝납니다.
출력 형식
두 개의 정수, 첫 번째 정수는 데이터에 읽힌 홀수의 개수를 나타내고, 두 번째 정수는 데이터에 읽힌 짝수의 개수를 나타낸다.두 정수는 공백으로 구분됩니다.
샘플 입력:
9 3 4 2 5 7 -1
출력 예제:
42 시간 제한: 500ms 메모리 제한: 32000kb
참조 코드
#include 
int main(){
    int x;
    int a=0,b=0;
    while (scanf("%d",&x)){
        if (x==-1) break;
        if (x%2==0) a++;
        else b++;
    }
    printf("%d %d",b,a);
    return 0;
}

2 디지털 특징치(5점)
제목 내용
디지털에 대해 특징값을 구하는 것은 자주 사용하는 인코딩 알고리즘이고 짝짓기 특징은 간단한 특징값이다.하나의 정수에 대해 한 자리부터 한 자리의 숫자에 대해 번호를 매긴다. 한 자리는 1번이고 열 자리는 2번이다. 이런 식으로 유추한다.이 정수는 n위의 숫자를 x로 기록하고, x와 n의 짝수가 같으면 다음 1을 기록하고, 그렇지 않으면 다음 0을 기록한다.정수의 순서에 따라 대응 위치의 짝짓기를 나타내는 0과 1을 모두 기록하면 이진법이 형성된다.예를 들어 342315에 대해 이 이진 숫자는 001101이다.
너의 프로그램은 마이너스 정수가 아닌 정수를 읽어야 한다. 정수의 범위는 [01000000]이다. 그리고 상술한 알고리즘에 따라 짝짓기를 나타내는 그 2진수 숫자를 계산하여 그에 대응하는 10진수 값을 출력해야 한다.
알림: 정수를 오른쪽에서 왼쪽으로 분해하고, 숫자는 매번 1을 더하고, 이진법은 매번 2를 곱한다.
입력 형식
정수의 범위는 [01000000]입니다.
출력 형식
계산 결과를 나타내는 정수.
샘플 가져오기
342315
출력 예제
13 시간 제한: 500ms 메모리 제한: 32000kb
참조 코드
#include 
int main(){
    int x;
    scanf("%d",&x);
    int ans=0,k=1,cnt=1;
    while (x){
        int temp;
        if (x%2==k) temp=1;
        else temp=0;
        //printf("%d ",temp);
        ans=ans+temp*cnt;
        k=1-k;
        x/=10;
        cnt*=2;
    }
    printf("%d
"
,ans); return 0; }

좋은 웹페이지 즐겨찾기