2934번 소음 문제 !
소음 성공
https://www.acmicpc.net/problem/2935
입력
첫째 줄에 양의 정수 A가 주어진다.
둘째 줄에 연산자 + 또는 *가 주어진다.
셋째 줄에 양의 정수 B가 주어진다.
A와 B는 모두 10의 제곱 형태이고, 길이는 최대 100자리이다.
출력
첫째 줄에 결과를 출력한다. 결과는 A+B 또는 A*B이며, 입력에서 주어지는 연산자에 의해 결정된다.
예제 입력
1000 * 100
예제 출력
100000
처음에 간단한 문제인 줄 알고 long long int 썼다가 문제를 다시 읽어보니 100자리 10^100승 까지 커버해야 되는 것을 깨달음.
배열에 0출력 루프 밖에 생각안나서 그렇게 풀었음, 크기가 같을 땐 2로 해주고 자릿수 만큼 출력
+
a>b 일땐 a배열을 b-a 만큼 출력후 1이 아닌 b의 0 갯수만큼 출력 반대의 경우도 같은 방식으로 출력
#include <iostream>
using namespace std;
int main(){
char a[101]={0,},b[101]={0,};
char op[1];
cin>>a>>op[0]>>b;
if(op[0]=='*'){
cout << a;
int end = 1;
while(true){
if(b[end] == '\0') break;
end++;
cout << "0";
}
}
else {
int asize =0, bsize =0;
while(true){
if(a[asize] == '\0') break;
asize++;
}
while(true){
if(b[bsize] == '\0') break;
bsize++;
}
if(asize==bsize)
{
cout << "2";
for(int i = 0;i < asize-1; i++)
cout << "0";
}else if(asize>bsize){
for(int i = 0; i < asize-bsize; i++)
cout <<a[i];
for(int j = 0; j < bsize; j++)
cout <<b[j];
}else{
for(int i = 0; i < bsize-asize; i++)
cout <<b[i];
for(int j = 0; j < asize; j++)
cout <<a[j];
}
}
}
'컴퓨터공학 > 알고리즘 _ 문제해결' 카테고리의 다른 글
10799 쇠막대기 백준 알고리즘 문제 스택 (0) | 2017.01.08 |
---|---|
1063 king 킹 시뮬레이션 백준 알고리즘 ! (0) | 2017.01.04 |
1408 24 백준 알고리즘 온라인저지 (0) | 2016.12.26 |
11653 소인수 분해 문제 백준 알고리즘 (0) | 2016.12.22 |
2163 초콜릿 자르기 Dynamic Programing 백준 (0) | 2016.12.21 |