原题链接:蓝桥杯算法提高VIP-寻找三位数
解题思路:
注意事项:
数字之间使用空格隔开。
参考代码:
public class C1518 { public static void main(String[] args) { //由于是3位数 故应该比例为1的数应该在区间【123, 329 】范围内 for(int i100 = 1; i100 <= 3; i100++){ for(int i010 = 1; i010 <= 9; i010++){ if(i010 != i100){ for(int i001 = 1; i001 <= 9; i001++){ if(i001 != i100 && i001 != i010){ int i = 100*i100 + 10*i010 + i001; if(i >= 123 && i<= 329){ String a = String.valueOf(i); String b = String.valueOf(2*i); if(b.indexOf("0") != -1) continue; String c = String.valueOf(3*i); if(c.indexOf("0") != -1) continue; if(isMatch(a, b) && isMatch(a, c) && isMatch(b, c)) System.out.printf("%s %s %s\n", a, b, c); } } } } } } } private static boolean isMatch(String str1, String str2){ for(int i = 0; i < 3; i++){ if(str1.indexOf(str2.charAt(i)) != -1) return false; } return true; } }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复