原题链接:蓝桥杯算法提高VIP-计算器
解题思路:
注意事项:
参考代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a[] = new String[100];
/** 将0-9数字存入数组a中,其中有红线的部分为1没有的部分为0 */
a[0] = "1111110";
a[1] = "0010010";
a[2] = "0111101";
a[3] = "0110111";
a[4] = "1010011";
a[5] = "1100111";
a[6] = "1101111";
a[7] = "0110010";
a[8] = "1111111";
a[9] = "1110111";
int l = sc.nextInt();
String b = sc.next();
String c = sc.next();
int bb[] = new int[l + 10];
int cc[] = new int[l + 10];
/** 将输入的字符串转化成数字 */
for (int i = 0; i < l; i++) {
bb[i] = b.charAt(i) - '0';
cc[i] = c.charAt(i) - '0';
}
/** 求出需要变换的次数 */
int sum = 0;
for (int i = 0; i < l; i++)
for (int k = 0; k < 7; k++)
if (a[bb[i]].charAt(k) != a[cc[i]].charAt(k))// 比较两个数字所在的位置有几个不同的红线标记
sum++;
System.out.println(sum);
}
}0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复