최대 1 분 소요

문제

네 자연수 A, B, C, D가 주어진다. 이때, A와 B를 붙인 수와 C와 D를 붙인 수의 합을 구하는 프로그램을 작성하시오.

두 수 A와 B를 합치는 것은 A의 뒤에 B를 붙이는 것을 의미한다. 즉, 20과 30을 붙이면 2030이 된다.

입력

첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000)

출력

A와 B를 붙인 수와 C와 D를 붙인 수의 합을 출력한다.

문제 링크

https://www.acmicpc.net/problem/10824

난이도: 브론즈 3

알고리즘 분류

  • 수학
  • 구현
  • 문자열
  • 사칙연산

C++를 사용한 풀이

#include <iostream>
//#include <cmath>
using namespace std;
long long pow(long long a, int exp){
    long long answer=1;
    for(int i=0;i<exp;++i){
        answer*=a;
    }
    return answer;
}
int num_length(long long n){
    long long num=n;
    int count=0;
    while(num>0){
        count++;
        num/=10;
    }
    return count;
}
int main(void){
    int a,b,c,d;
    cin>>a;
    cin>>b;
    cin>>c;
    cin>>d;

    long long answer=(long long)a*pow(10,num_length(b)) + (long long)b + (long long)c*pow(10,num_length(d)) + (long long)d;
    cout<<answer;
}

댓글남기기