题意:
给一个数字n,下面给 n 个数(0~9),表示真密码,然后下面同样给出n个数,表示伪密码,问将伪密码变成真密码最小的移动步数。
输入:
5 82195 64723
输出:
13
分析:
当正向移动步数超过5时,就逆向移动。
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
char a[1005],b[1005];
int ans=0;
cin >>n>>a>>b;
for(int i=0;i<n;i++)
{
if(abs((a[i]-'0')-(b[i]-'0'))<=5)
ans+=abs((a[i]-'0')-(b[i]-'0'));
else
ans+=(10+min((a[i]-'0'),(b[i]-'0'))-max((a[i]-'0'),(b[i]-'0')));
}
cout <<ans<<endl;
return 0;
}