본문 바로가기

PS/Educational Codeforces

Educational Codeforces Round 005. A

반응형

A. Comparing Two Long Integers

문제

https://codeforces.com/contest/616/problem/A

 

문제요약

긴 문자열 두개 a, b를 입력받아 정수로 나타냈을 때 어느게 더 큰지 나타내라

 

풀이

간단하게 둘 다 0이아닌곳부터 시작해서 우선 길이가 더 큰거 비교해서 대소 나타내고 길이가 같다면

반목문 돌면서 앞에서부터 각 문자 중 더 큰거 비교해서 대소를 나타낸다.

마지막까지 같다면 '=' 출력

 

소스코드

#include <stdio.h>
#include <string.h>

char a[1100000], b[1100000];

int main(){
    scanf("%s\n%s",a,b);
    int x=0, y=0, n, m;
    n = strlen(a);
    m = strlen(b);
    for(;a[x] && a[x]=='0'; ++x);
    for(;b[y] && b[y]=='0'; ++y);

    if(n-x > m-y) {puts(">"); return 0;}
    if(n-x < m-y) {puts("<"); return 0;}
    for(int i=x; i<n; ++i, ++x, ++y){
        if(a[x]>b[y]) {puts(">"); return 0;}
        if(a[x]<b[y]) {puts("<"); return 0;}
    }
    printf("=");
}
반응형