cyphen156

백준-입출력과 사칙연산-2588 곱셈 본문

컴퓨터공학/알고리듬 풀이

백준-입출력과 사칙연산-2588 곱셈

cyphen156 2023. 9. 26. 11:29

2588번: 곱셈 (acmicpc.net)

 

2588번: 곱셈

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

www.acmicpc.net

입력받은 두 개의 세 자리수 자연수를 곱하는 과정을 자리수마다 출력하고, 합을 출력하면 되는 문제다.

제약사항

  • 0< A, B < 1,000

C 풀이

곱셈_2588.c

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

void calc(int first, int second){
    printf("%d\n", first * (second % 10));
    printf("%d\n", first * ((second % 100) / 10));
    printf("%d\n", first * (second / 100));
    printf("%d", first * second);
}
int main() {
    int first, second;
    scanf("%d %d", &first, &second);
    calc(first, second);
    return 0;
}

C++ 풀이

곱셈_2588.cpp

#include <iostream>

using namespace std;

int main()
{
    int A, B;
    cin >> A >> B;
    cout << A * (B % 10) << '\n'
        << A * ((B % 100) / 10) << '\n'
        << A * (B / 100) << '\n'
        << A * B << endl;
	return 0;
}

Extra

출력형식이 맘에 안든다 자릿수를 맞춰주자.

정답으로는 취급되지 않는 번외 코드

사용되는 함수

  • setw(n) : 출력 형식을 n자릿수만큼 정렬해서 출력한다. (기본값은 오른쪽 정렬)
                    왼쪽 정렬을 수행하고 싶다면 setw()함수 앞에 cout << left 를 사용하면 된다.(internal, right옵션도 존재한다.)
  • setfill(' ') : ''빈 자릿수를 안의 문자로 채운다
  • printf("%ns", "output") : C에서의 자릿수 맞추기, %-ns는 왼쪽정렬, 남는칸은 공백으로 n자릿수만큼 채워서 출력한다.

곱셈_2588_Extra.cpp

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    int A, B;
    cin >> A >> B;
    cout << setw(6) << setfill(' ') << A * (B % 10) << '\n'
        << setw(6) << setfill(' ') << A * ((B % 100) / 10) * 10 << '\n'
        << setw(6) << setfill(' ') << A * (B / 100) * 100 << '\n'
        << setw(6) << setfill('0') << A * B << endl;
    return 0;
}

모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리 에 있습니다.

Workspace/알고리듬 풀이 at main · cyphen156/Workspace · GitHub