算法刷题记录:233
题目链接
https://ac.nowcoder.com/acm/contest/19859/E
题目分析
一道找规律的题,我们注意33
,当33
的长度一样,我们只要无脑添加4
和8
即可。
- 4和8的关系与33的关系:有n个33,就有n-1个4或8。
在此基础之上,因为会出现a和b的33长度不相同的情况,这时候我们只要统计a和b的33个数的差就行了。 - 如果差为t,那么就有t-1个6。
AC代码
// Problem: 233
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/19859/E
// Memory Limit: 65536 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
int T;
string a, b;
// 统计233的个数,打印cnt-1个'4'和'8'
int main()
{
cin >> T;
while (T -- )
{
cin >> a >> b;
int acnt = 0, bcnt = 0;
for (size_t i = 0; i < a.size() || i < b.size(); ++ i)
{
if (i < a.size() && a[i] == '3') ++ acnt;
if (i < b.size() && b[i] == '3') ++ bcnt;
}
int cnt = min(acnt, bcnt);
int t = abs((int)a.size() - (int)b.size());
if (!t)
{
cout << '5';
for (int i = 0; i < cnt - 1; ++ i) cout << '4';
cout << '2';
for (int i = 0; i < cnt - 1; ++ i) cout << '8';
cout << '9';
}
else
{
cout << '5';
for (int i = 0; i < cnt - 1; ++ i) cout << '4';
cout << '3';
for (int i = 0; i < t - 1; ++ i) cout << '6';
cout << '5';
for (int i = 0; i < cnt - 1; ++ i) cout << '8';
cout << '9';
}
cout << endl;
}
}
本文来自博客园,作者:想个昵称好难ABCD,转载请注明原文链接:https://www.cnblogs.com/ClockParadox43/p/17453792.html