原题链接:蓝桥杯算法提高VIP-寻找三位数
解题思路:
首先要保证每个数不相同的情况下,a最小是123 ,c最大是987,所以a最大是987/3 = 329
确定a的值通过比例的关系可以确定剩下两个数,对字符串排序之后对比可以比较出字符串的各个字符是不是唯一的。
注意事项:
比较字符串的时候不能直接用“==”进行比较,因为在string1 == string2中,比较的是地址,由于string1 和 string2是两个不同的对象,所以二者的地址不一样。
参考代码:
import java.util.Arrays; public class Main { public static void main(String[] args) { String str = "123456789"; String newStr = ""; for (int a = 123; a < 330; a++) { int b = a * 2; int c = a * 3; newStr = a + "" + b + "" + c; char[] chs = newStr.toCharArray(); Arrays.sort(chs); newStr = String.valueOf(chs); if (str.equals(newStr)) { System.out.println(a + " " + b + " " + c); } } } }
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复