P1781 宇宙总统
解题思路
这道题目要求我们从多个候选人中找出票数最多的总统候选人。由于票数可能非常大(达到100位数字),我们需要使用字符串来处理票数比较。
方法思路
-
字符串比较:使用字符串存储票数,避免大数处理问题
-
比较规则:
-
首先比较字符串长度,长度更大的票数更大
-
如果长度相同,则直接进行字符串字典序比较
-
-
记录结果:在比较过程中记录最大票数及其对应的候选人编号
代码注释
#include<bits/stdc++.h> using namespace std; int main() { int n; cin >> n; // 读取候选人数量 string ans; // 存储当前最大票数字符串 int id = 0; // 存储当前最大票数候选人的编号 for(int i = 1; i <= n; i++) // 遍历每个候选人 { string s; cin >> s; // 读取当前候选人的票数字符串 // 比较票数大小 if(s.size() > ans.size()){ // 当前票数位数更多 ans = s; // 更新最大票数 id = i; // 更新候选人编号 } else if(s.size() == ans.size() && s > ans){ // 位数相同但数值更大 ans = s; // 更新最大票数 id = i; // 更新候选人编号 } } cout << id << endl << ans << endl; // 输出结果 return 0; }

浙公网安备 33010602011771号