题解:P1781 宇宙总统

· · 题解

使用高精度轻松过关: 定义一个函数,比较两个字符串的最大值。 然后定义big保存最大值并实时更新,最后查找最大值的位置即可。

#include<bits/stdc++.h>
using namespace std;
string max(string a,string b){
//定义比较两个字符串的最大值
    if(a.size()<b.size()){//判断长度
        return b;
    }
    if(a.size()>b.size()){//判断长度
        return a;
    }
    if(a.size()==b.size()){//长度相等,直接比较
        if(a<b){
            return b;
        }
        if(a>b||a==b){
            return a;
        }
    }
}
int main(){
    string a[101];
    int n,p;
    cin>>n;
    string big="0";//定义最大值
    for(int i=1;i<=n;i++){
        cin>>a[i];
        big=max(big,a[i]);//更新最大值
    }
    for(int i=1;i<=n;i++){//判断位置
        if(a[i]==big){
            p=i;
        }
    }
    cout<<p<<endl<<big;
    return 0;
}