[C++ 언어-기초실습-16] 정수를 입력받아 각 자리 수을 더한 값을 구하라?
[C++ 언어-기초실습-16] 정수를 입력받아 각 자리 수을 더한 값을 구하라?
- 다운 사이트 : https://sourceforge.net/projects/orwelldevcpp/
- 웹컴파일러 : https://www.tutorialspoint.com/compile_c_online.php
오늘은 어떤 실습 문제를 만들까 하다가 정수 하나를 입력 받아서 정수에 있는 각 자리 숫자들을 더한 값을 구해보는 실습을 해보는 것이 좋을 것 같아서 오늘의 주제로 결정했네요. 그럼 시작해 볼까요.
1. 정수 입력과 자릿수 구하기
int a=123;
가령 정수가 123이란 수가 있다면 '1', '2', '3'이라는 각 자릿 수를 어떻게 구할까요. 가장 간단한 방법은 '%'연산자를 이용하여 10으로 나눈 나머지 값으로 자릿수를 구하면 됩니다. 10으로 나눈 나머지면 '3'이라는 숫자를 구할 수 있게 됩니다. 그러면 '2'라는 숫자를 구하기 위해서는 또 고민하게 됩니다. '/'연산자를 이용하여 10으로 나눈 몫을 하면 일의 자리를 절삭할 수 있습니다.
설명이 좀 이해가 안갈 수 있는데 식으로 설명하면 다음과 같습니다.
int a=123;
1번째 :
a % 10 = 123%10 => 3
a = a / 10 => 123 / 10 => 12
2번째 :
a % 10 = 12%10 => 2
a = a / 10 => 12 / 10 => 1
어떤 느낌으로 전개 되는지 아시겠지요.
이제 코딩을 통해 실제 하나의 정수를 입력 받아 각 자리수를 더한 값을 출력 해 보도록 하겠습니다.
2. 코딩
[전체소스]
#include
using namespace std;
int main(int argc, char** argv) {
int a;
int b;
int sum=0;
cout<<"정수 하나를 입력하시오? ";
cin>>a;
cout<<"자릿수 총합 : ";
do{
b=a%10;
sum=sum+b;
cout<<b;
a=a/10;
if(a!=0) cout<<"+";
}while(a!=0);
cout<<"="<<sum<<endl;
return 0;
}
[결과]
마무리
오늘의 핵심은 각 자리숫자를 쪼갤 수 있느냐의 능력입니다. 문자열의 경우는 배열 변수로 각 위치(index)로 각 자릿수를 쉽게 쪼갤 수 있습니다. 참고로 위 정수입력이 아닌 숫자여도 문자열로 입력 받아서 각 위치 값을 불러와서 문자를 숫자로 변환하는 함수를 이용하면 간단히 해결 할 수도 있습니다. 이부분은 한번 직접 만들어 보세요. 여기에서는 숫자의 개념과 숫자를 어떻게 분해해 낼 수 있는지의 능력을 테스트 하기 위한 실습입니다.
Sponsored ( Powered by dclick )
Leave [C++ 언어-기초실습-16] 정수를 입력받아 각 자리 수을 더한 값을 구하라? to:
Read more #kr-dev posts
Best Posts From 천간
We have not curated any of codingman's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From 천간
- step 온라인평생교육원 무료사이트
- 울동네 산책로
- 명월초 키우기(부활)
- [C++ 언어-기초실습-24] GetSystemMetrics()함수로 윈도우 정보 얻기
- [구글스프레드시트] IMPORTXML()함수를 통한 로또번호 웹클로링
- [C++ 언어-기초실습-23] system()+cmd 명령으로 C 실행파일 만들기
- [C++ 언어-기초실습-22] system()+cmd 명령으로 파일 생성하기
- [C++ 언어-기초실습-20] system()함수 다루기
- [C++ 언어-기초실습-19] map 사용하기?
- [C++ 언어-기초실습-18] gotoxy()함수로 커서 이동하기?
- [C++ 언어-기초실습-17] 정수를 비트단위로 출력하기?
- [AdFit] 재미로 광고 달기
- [구글스프레드시트] 뉴스 기사 웹클로링
- [구글스프레드시트] 자동 이메일 보내기
- [C++ 언어-기초실습-16] 정수를 입력받아 각 자리 수을 더한 값을 구하라?
- [C++ 언어-기초실습-15] 글자 개수 세기
- [C++ 언어-기초실습-14] 숫자 맞추기 게임
- [C++ 언어-기초실습-13] 빈도수 구하기
- [C++ 언어-기초실습-12] 문자열 삽입하기?
- [C++ 언어-기초실습-11] 비만도 계산하기?