分析:由于要拆分数字,所以可以将其转换成字符串,再利用字符串分析
public class 平方和 {
public static void main(String[] args) {
long sum=0L;
for(int i=1;i<=2019;i++){//注意是i<=2019,不是i<2019
String s=""+i;//
//只需要知道是否包含,所以不用特地取数组
if(s.contains("2")||s.contains("0")||s.contains("1")||s.contains("9")) {
//注意如果i不是long类型的话要用long强制转换
//pow(i,2)表示i的平方)
sum+=(long)Math.pow(i, 2); //或者直接sum+=i*i
}
}
System.out.println(sum);
//稍微麻烦一点的取数组方法,但需要知道某个索引的时候用此方法,比如乘积尾零的题
// char[] a=s.toCharArray();
// for(int j=0;j<a.length;j++){
// if(a[j]=='2'|| a[j]=='0'||a[j]=='1'||a[j]=='9'){
// sum+=i*i;
// break;
// }
// }
// }
//System.out.println(sum);
}
}
一样的逻辑,python写法:
sum=0
for i in range(1,2020):
s=str(i)
if '2' in s or '0' in s or '1' in s or '9' in s:
sum+=i*i
print(sum)