蓝桥杯:平方和(字符串操作) java&python

本文通过Java和Python代码示例,展示了如何利用字符串操作技巧,检查数字是否包含特定字符(2, 0, 1, 9),从而计算从1到2019范围内数字的平方和。两种语言实现的逻辑相似,重点在于字符串处理和条件判断。
摘要由CSDN通过智能技术生成

分析:由于要拆分数字,所以可以将其转换成字符串,再利用字符串分析

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值