知道循环次数用for循环
练习题1
小明对数位中含有2.0.1.9的数字很感兴趣,在1到40中这样的数包含1.2.9.10至32.39.40,共28个,他们的和是574.请问,在1到2019中,所有这样的数的和是多少?(2019Java C组第一题)
解析:最快的方法就是将数字转换成字符串。获取每一位的数字进行比较,再累加。
public class demo1 {public static void main(String[] args){int count=0;for(int i =1;i<=2019;i++) {//将数字转成字符串String j = i + "";//将字符串转成字符数组 toCharArray()char[] cs = j.toCharArray();for (int k = 0; k < cs.length; k++) {if (cs[k] == '0' || cs[k] == '1' || cs[k] == '2' || cs[k] == '9') {count += i;break;}}}System.out.println(count);}
}
练习题2
一些数字的立方的末尾正好是该数字本身。比如:1,4,5,6,9,24,25......;请你计算一下,在10^4以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个(2015Java C组第二题)
解析:可以将数字和数字的立方转成字符串。我们可以使用方法str.endsWith(str2):判断字符串str是否以字符串str2结尾。
public class demo2 {public static void main(String[] args){int count = 0;for(int i = 1;i<=10000;i++){String j= i +"";String m= i*i*i +"";if(m.endsWith(j)){count++;}}System.out.println(count);} }