백준 #10 [C++] 10430. 나머지 연산, 표준입출력, 여러 줄 출력

K Choi·2022년 1월 20일
0

백준

목록 보기
10/37
post-thumbnail

백준 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를 출력한다.

예제 입력

5 8 4

예제 출력

1
1
0
0

풀이

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;
}

첫 줄 int A, B, C; 빼먹어서 첫 제출엔 컴파일 에러 남..
이런 자잘한 실수는 하지 말자

C 코드

#include <stdio.h>
int main() {
    int A, B, C;
    scanf("%d%d%d", &A, &B, &C);
    printf("%d\n%d\n%d\n%d\n", (A+B)%C, ((A%C)+(B%C)) % C, (A*B)%C, ((A%C)*(B%C)) % C);
    return 0;
}

악 얜 중간에 실수로 괄호 1개 더 넣어서 첫 제출에 컴파일 에러남
뭐가 문제인지 한참 찾았네;;
그래도 역시 C가 더 익숙하다

C++ 짧은 코드

#include <iostream>
using namespace std;
int main(){
    int a, b, c;
    cin >> a >> b >> c;
    cout << (a+b)%c << endl << ((a%c) + (b%c))%c << endl << (a*b)%c<<endl <<((a%c)*(b%c))%c << endl;
    return 0;
}

오 내가 궁금했던 부분 해소해주는 코드 찾았다.
C의 printf()에서 \n 사용해 여러 줄 출력하는 것처럼
C++도 한 번에 여러 줄 출력할 수 있지 않을까 했는데 역시 가능했군

endl 통해서 개행하면서 작성하면 되는 거였음
근데 어제 정리한 내용 보면

cout << "Hi, how are you? \n I'm fine, thank you." << endl;

이렇게 작성하는 게 가능하니

cout << (a+b)%c \n ((a%c) + (b%c))%c \n (a*b)%c \n ((a%c)*(b%c))%c << endl;

으로도 작성 가능하고 endl 쓰는 것보다 \n 쓰는 게 더 효율적이니 이게 더 낫겠다 싶었는데 막상 제출해보니 컴파일 에러 나네.. 뭐가 문제지......

profile
mbeCoder

0개의 댓글

Powered by GraphCDN, the GraphQL CDN