codeforces-540A. Combination Lock-题解
题目大意:
组合锁由n个旋转磁盘表示,磁盘上的数字从0到9。McDuck必须转动一些磁盘,这样磁盘上的数字组合就形成了一个秘密组合。在一次移动中,他可以将一个磁盘向前或向后旋转一个数字。特别是,他可以从0到9,反之亦然。他需要的最少行动次数是多少?第一行包含一个整数n (1<=n<=1000),即组合锁上的磁盘数。第二行包含一个包含磁盘原始状态的n位字符串。第三行包含一个n位数字的字符串,这是McDuck打开锁的组合。输出一个整数打开锁所需的最小步数。
eg:
input
5
82195
64723
output
13
思路:
主要是往前转还有往后转的问题,判断条件是a[i]-b[i]的绝对值是否大于5
注意:
小编刚刚学code,打code时常常容易犯错误,就这道题来说,小编错在将a,b的数组用int来定义,这样一来,输入样例“82195”时表示的意义是a数组的第一个元素的82195,即a[0]=82195,(除非你输入8 2 1 9 5,即带上空格,才能将int数组的元素分开),所以这道题应该用字符数组or字符串!!!
编代码如下:
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int ans=0;
char a[1008],b[1008];
cin>>a>>b;
for(int i=0; i<n; i++)
{
int t=abs(a[i]-b[i]);
if(t>5)
t=10-t;
ans+=t;
}
cout<<ans<<endl;
}
return 0;
}
标签:
c++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2020-05-07 codeforces-1084AThe Fair Nut and Elevator-题解