题目描述

输入
第一行为一个正整数L,表示数码的长度。
接下来两行是两个长度为L的数字A和B,表示要把数字A变成数字B(数字可以以0开头)。
输出
一行一个整数,表示这些小二极管一共要变换多少次。
样例输入
3
101
025
样例输出
12
提示
L<=100
思路:最直接的方法就是把一种数字变换到另一种数字的需要的次数都列出来
代码:
#include<stdio.h>
int main()
{
int ca[10][10]={{0,4,3,3,4,3,2,3,1,2},
{4,0,5,3,2,5,6,1,5,4},
{3,5,0,2,5,4,3,4,2,3},
{3,3,2,0,3,2,3,2,2,1},
{4,2,5,3,0,3,4,3,3,2},
{3,5,4,2,3,0,1,4,2,1},
{2,6,3,3,4,1,0,5,1,2},
{3,1,4,2,3,4,5,0,4,3},
{1,5,2,2,3,2,1,4,0,1},
{2,4,3,1,2,1,2,3,1,0}};
int sum,n,i;
char a[1000],b[1000];
while(~scanf("%d",&n))
{
scanf("%s %s",a,b);
sum=0;
for(i=0;i<n;i++)
{
sum+=ca[a[i]-'0'][b[i]-'0'];
}
printf("%d\n",sum);
}
return 0;
}
本文介绍了一个算法问题,通过一个二维数组记录不同数字间转换所需的步骤数,实现从一个数字序列到另一个数字序列的转换,并计算总的转换次数。采用C语言实现。
1544

被折叠的 条评论
为什么被折叠?



