일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 802.3
- 802.3 이더넷
- Address Resolution Protocol
- adodb 설치
- AES 암호
- Alternatively build in profile or release modes to enable launching from the home screen
- Android Studio 몰입모드
- Android Studio 몰입모드 설정
- Android Studio 상태바 없애기
- Android Studio 자동 정렬
- android studio 자동정렬
- Android Studio 자동정렬 단축키
- Android Studio 코드 자동정렬
- Android Studio 타이틀바 없애기
- Android Studio 하단 바 없애기
- Android Studio 홈버튼 없애기
- Angler EK
- Angler EK 악성코드
- Angler EK이란
- apache2 tomcat9
- apache2 tomcat9 설치
- apache2 tomcat9 연동
- API
- apk 에러
- apk 오류
- ARP
- arp cache poisoning
- ARP Poisoning
- ARP Request
- ARP 구조
Archives
- Today
- Total
지나가는 이야기
[C언어] 범위에 속한 숫자 개수 구하기 / 1~N에 속하는 숫자 M의 개수 구하기 본문
Computer language : 컴퓨터 언어/C
[C언어] 범위에 속한 숫자 개수 구하기 / 1~N에 속하는 숫자 M의 개수 구하기
지나가는 이야기 2020. 9. 3. 08:19728x90
반응형
- [문제]
숫자 1부터 1535까지의 숫자가 있다. 이 숫자들 중에서 3의 총개수를 구하시오.
(ex. 333은 3이 3개이다.)
이번에 짜 볼 프로그램은 위에서 설명한 문제처럼 숫자 1~N에 속하는 숫자 M의 개수를 구하는 프로그램이다. 이런 프로그램을 짜는 방법은 여러 가지가 있지만 이 글에서는 2개의 단계로 만들 것이다.
1. 숫자를 문자로 변환
2. 변환한 문자에서 해당 문자('3')가 있으면 카운트 +1
int start_number; // 시작 숫자
int end_number = 1535; // 마지막 숫자
int count = 0; // 3의 개수를 총 합
char number[5]; // 숫자1535까지 비교하므로 문자열길이를 5로 함
먼저 위 코드에서는 프로그램에서 사용할 변수들을 지정했다.
for (start_number = 1; start_number <= end_number; start_number++) { // 1부터 1535까지 반복문 사용
sprintf(number, "%d", start_number); // 숫자를 문자로 변환
int j = strlen(number); // 문자열 number의 길이를 j로 저장
for (int i = 0; i < j; i++) { // 인덱스 0부터 문자열길이까지 반복문 사용
if (number[i] == '3') { // 문자열 안에 문자 3이 있으면 카운트 1증가
count++;
//printf("%4d [%d] \n", start_number, count); // 확인용 printf문
}
else {
continue; // 문자열 안에 문자 3이 없으면 다시 처음으로
}
}
}
printf("Total count of number '3' : %d \n", count); // 총 개수 출력
그리고 위 코드를 보면, for문을 사용하여 1부터 1535까지 반복을 진행했다. sprintf함수를 사용하여 숫자를 문자로 변경하였으며, for문과 if문을 활용하여 해당 문자열에 찾고자 하는 문자('3')가 있으면 카운트가 1 올라가게 만들었다.
//숫자 1부터 1535까지의 숫자가 있다.이 숫자들 중에서 3의 총 개수를 구하시오.
//(ex. 333은 3이 3개 이다.)
#pragma warning(disable:4996) // sprintf_s의 에러코드인 C4996을 방지하기 위한 코드
#include <stdio.h>
int main(void) {
int start_number; // 시작 숫자
int end_number = 1535; // 마지막 숫자
int count = 0; // 3의 개수를 총 합
char number[5]; // 숫자1535까지 비교하므로 문자열길이를 5로 함
for (start_number = 1; start_number <= end_number; start_number++) { // 1부터 1535까지 반복문 사용
sprintf(number, "%d", start_number); // 숫자를 문자로 변환
int j = strlen(number); // 문자열 number의 길이를 j로 저장
for (int i = 0; i < j; i++) { // 인덱스 0부터 문자열길이까지 반복문 사용
if (number[i] == '3') { // 문자열 안에 문자 3이 있으면 카운트 1증가
count++;
//printf("%4d [%d] \n", start_number, count); // 확인용 printf문
}
else {
continue; // 문자열 안에 문자 3이 없으면 다시 처음으로
}
}
}
printf("Total count of number '3' : %d \n", count); // 총 개수 출력
return 0;
}
위 코드는 전체 코드이다.
728x90
반응형
'Computer language : 컴퓨터 언어 > C' 카테고리의 다른 글
[C] 숫자 피라미드 출력 / C언어 기초 (0) | 2022.01.24 |
---|---|
[C] 내림차순 정렬하기 / 버블 정렬 사용하기 (0) | 2020.10.15 |
[C] 오름차순 정렬하기 / 버블 정렬 사용하기 (0) | 2020.10.14 |
[C] 엘리베이터 프로그램 (0) | 2020.06.21 |
Comments