原题链接:蓝桥杯算法提高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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复