算法中对于数组、字符串是否包含内容判断。
#有关算法题目:
奇妙的数字
小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。
你能猜出这个数字是多少吗?
代码:
// An highlighted block
public class Main {
public static void main(String[] args) {
for(int i = 1;i<=100;i++) {
String s1 = i * i +"";
String s2 = i * i * i +"";
String str = s1+s2;
if(str.contains("0") && str.contains("1") && str.contains("2") && str.contains("3")
&& str.contains("4") && str.contains("5") && str.contains("6") && str.contains("7")
&& str.contains("8") && str.contains("9")
) {
System.out.print(i);
}
}
}
}
分析:
这一题巧妙地运用了通过数字转化成String类型。对字符串使用内置函数.contains()。判断字符串中是否存在所表示的内容。方便简单。
相关题目:
试题 A: 求和
【问题描述】
小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。
请问,在 1 到 2019 中,所有这样的数的和是多少?
下面展示 参考代码
。
public class Main{
public static void main(String[]args) {
String str = "";
int sum = 0;
for(int i = 1; i <= 2019; i++) {
str = ""+i;
//判断字符串str中是否含有字符串“2,0,1,9”
if(str.contains("2") || str.contains("0") || str.contains("1") || str.contains("9"){
sum += i;
// System.out.println(str);
}
}
System.out.println(sum);
}
}