728x90
반응형

아스키 코드 성공

문제

알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

입력

알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다.

출력

입력으로 주어진 글자의 아스키 코드 값을 출력한다.

 

#include <stdio.h>

int main(){

     char input;
     scanf("%s",&input);

     printf("%d",input);
}

 

반응형

'백준 단계별로 풀어보기 > 문자열' 카테고리의 다른 글

백준 2908 상  (0) 2022.10.03
백준 1152 단어의 개수  (0) 2022.10.03
백준 1157 단어 공부  (0) 2022.10.02
백준 2675 문자열 반복  (0) 2022.10.02
백준 11720 숫자의 합  (0) 2022.09.28
728x90
반응형

한수 성공

 
문제

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 

입력

첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.

출력

첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.

 

처음 문제를 대충 읽었을 때는 어렵겠다고 생각. 하지만 입력되는 N의 조건이 간단함

 

1. 한자리수의 경우, 원소가 하나이므로 등차 수열이다.

2. 두자리 수의 경우, 원소가 두개 밖에 없으므로 등차 수열이다.

즉, N<100 인 경우, '한수'의 개수는 99개이다.

 

3. 세자리의 경우

백의 자리, 십의 자리, 일의 자리 의 차이가 일정할 경우 등차 수열이라 할 수 있다.

백의 자리는 i/100

십의 자리는 i/10%10

일의 자리는 i%10

으로 나타낼 수 있다.

 

입력된 정수 N 보다 작거나 같은 한 수의 개수를 세기 위해

100이상 N이하의 정수에 대하여 백-십 = 십-일 인지 확인해본다.

 

 

#include <stdio.h>

int ishan(int x){
    int count=0;
    //문제에서 입력은 1000보다 작거나 같음
    //따라서 한자리수나 두자리수의 경우는 무조건 등차수열이다.
    if(x<100) {
         return x;  
    }else{
        count = 99;
        
        for(int i=100; i<=x; i++){
            int hund = i/100;
            int ten = (i/10)%10;
            int one = i%10;
            
            if((hund-ten)==(ten-one)){
                count++;
            }
            
        }
        return count;
    }
    
    
    
    
    
}

int main()
{
    //어떤 양의 정수 x 의 각 자리가 등차수열을 이룬다면..한수
    int x;
    
    scanf("%d",&x);
    
    printf("%d",ishan(x));
    return 0;
}

 

 

 

반응형

'백준 단계별로 풀어보기 > 함수' 카테고리의 다른 글

백준 4673 셀프 넘버  (0) 2022.09.21

+ Recent posts