본문 바로가기
Language/C++

[C++_백준] 입출력과 사칙연산 ( 10171, 10172, 1000, 1001, 10998, 1008, 10869, 10430, 2588)

by 전전긍긍 2021. 10. 1.

10171. 고양이

 

문제

아래 예제와 같이 고양이를 출력하시오.

 

입력

없음.

 

출력

고양이를 출력한다.

 

#include <iostream>
using namespace std;

int main()
{
    cout<<"\\    /\\" << endl; //백슬래쉬
    cout<<" )  ( ')" << endl;
    cout<<"(  /  )"<< endl;
    cout<<" \\(__)|"<<endl; //백슬래쉬
    return 0;

}
더보기

수많은 시도 끝에 성공

백슬래쉬 때문에 많은 애를 먹었다.

첫 번째 줄에만 있는줄 알았는데 막줄에도 있었다.

 

 

참고

 


10172. 개

 

문제

아래 예제와 같이 개를 출력하시오.

 

입력

없음.

 

출력

개를 출력한다.

 

#include <iostream>
using namespace std;

int main()
{
    cout<<"|\\_/|"<<endl;
    cout<<"|q p|   /}"<<endl;
    cout<<"( 0 )\"\"\"\\"<<endl;
    cout<<"|\"^\"`    |"<<endl;
    cout<<"||_/=\\\\__|"<<endl;
    return 0;
}
더보기
뿌듯

위에 문제 고양이에서 이스케이프 시퀀스덕분에 한 번에 맞혔다.

 


1000. A+B

 

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

 

출력

첫째 줄에 A+B를 출력한다.

 

#include <iostream>
using namespace std;

int main()
{
    int A,B;
    cin >> A >> B;
    
    cout << A + B ;
    return 0;
}
더보기

 

처음엔 조금 자존심이 많이 상했다.

C++배운지 한 달정도 밖에 안됐지만 그래도 사칙연산 틀리는 건 아니지 하면서.

 

내 문제점

1. 문제가 요구하는 대로 따라주지 않았다.

2. cin >> A >> B 이렇게 하는지 몰랐다. 

그저 cin >>A,B 를 해서 초기화되지 않은 메모리 B를 사용한다고 에러가 뜬 것이다.

 

블로그들 찾아보면서 왜 틀리지 생각했다가 여러가지로 배우고 간다.

 


1001. A+B

 

문제

두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

 

출력

첫째 줄에 A-B를 출력한다.

 

#include <iostream>
using namespace std;

int main()
{
    int A,B;
    cin >> A >> B;
    cout << A - B << endl;
    return 0;
}
더보기

 

1000번 문제를 풀고 바로 풀어서 쉽게 풀은 문제!

 


10998. AxB

 

문제

두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

 

출력

첫째 줄에 A×B를 출력한다.

 

 

#include <iostream>
using namespace std;

int main()
{
    int A,B;
    cin >> A >> B;
    cout << A * B << endl;
    return 0;
}

 

더보기

컴파일 에러는... ; 를 :로 잘못써서... 어우 제발 실수하지 말자

 


1008. A/B

 

문제

두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

 

출력

첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10^-9 이하이면 정답이다.

10^-9 이하의 오차를 허용한다는 말은 소수점 10번째자리 이상까지 출력하면 정답으로 인정해 주겠다는 말이라고 한다.

#include <iostream>
using namespace std;

int main()
{
    double A,B;
    cin >> A >> B;
    cout.precision(10);
    cout << A / B << endl;
    return 0;
}

 

** 새롭게 배운 개념

cout.precision() : 소수점 자릿수 정하기

() 안에는 자릿수를 적는다

만약 cout.precision(3); 이면 4번째 자리에서 반올림을 해서 3번째 자리까지 출력을 하겠다는 소리다.

 

더보기

 

하.. 왜 사칙연산 풀면서 자존감 떨어지냐 존심 상하게

이 문제는 블로그들을 보면서 풀었다.

그냥 답지를 보고 쓴 기분이어서 맞아도 썩 기분이 좋지는 않다.

내 생각으로 풀고 싶었는데 내가 무엇을 모르는지도 몰라서 그게 잘 되지 않았다.

 


10869. 사칙연산

 

문제

두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오.

 

입력

두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000)

 

출력

첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A*B, 넷째 줄에 A/B, 다섯째 줄에 A%B를 출력한다.

 

#include <iostream>
using namespace std;

int main()
{
    int A,B;
    cin >> A >> B;
    cout << A + B << endl;
    cout << A - B << endl;
    cout << A * B << endl;
    cout << A / B << endl;
    cout << A % B << endl;
    return 0;
}
더보기

clear

 


10430. 나머지

 

문제

(A+B)%C는 ((A%C) + (B%C))%C 와 같을까?

(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?

세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.

 

입력

첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)

 

출력

첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다.

 

#include <iostream>
using namespace std;

int main()
{
    int A,B,C;
    cin >> A >> B >> C;
    
    cout << (A + B) % C << endl;
    cout << (( A % C ) + ( B % C )) % C << endl;
    cout << (A * B) % C << endl;
    cout << ((A % C) * (B % C)) % C << endl;
    return 0;
}
더보기

 

저기 컴파일 에러는... 

복붙하다가 x 곱하기를 *로 안바꿔서 컴파일 에러남..

 


2588. 곱셈

 

문제

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

 

입력

첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

 

출력

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

 

#include <iostream>
using namespace std;

int main()
{
    int A,B;
    cin >> A >> B;
    
    cout << A * (B % 10) << endl;
    cout << (A * ((B / 10) % 10)) << endl;
    cout << (A * ((B / 10) / 10)) << endl;
    cout << A * B <<endl;
    return 0;
}
더보기

 

나는 (4),(5) 뒤에 일의 자리 수랑 십의 자리 수에 0이 들어간 상태로 더해서 (6)이 만들어 진다고 생각하고 

각각 10이랑 100을 곱했는데 그냥 숫자만 구해면 되는 거였다.

만약 그렇게 할려면 (6)번에서 (3) + (4) * 10 + (5) * 100 을 하면 된다.

 

https://blog.naver.com/kji9653/222444943307

 

c++ 기초 <038> while 반복문 응용- 숫자에서 자리수의 합 구하기- 나머지 연산자 활용(num%10), while문

안녕하세요. 스마트리지 월터입니다 c++ 기초 <038> while 반복문 응용- 숫자에서 자리수의 합 구하...

blog.naver.com

내가 참고한 블로그이다.

각 자리수를 어떻게 꺼내지 고민이 많았는데 나머지 연산자를 활용하면 된다.