求出1~2019 中所有含 2 0 1 9 的数字

求出1~2019 中所有含 2 0 1 9 的数字

用了contains方法

public static void main(String[] args) {
  int num=0;//存储个数
  for (int i = 1; i <=2019; i++) {
   String str=String.valueOf(i);
   
   if(str.contains("2")||str.contains("0")||str.contains("1")||str.contains("9")){
    num++;
    System.out.println(i);
    System.out.println("共有"+num+"个");
   }
  } 
 }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 1 到 2019 有 2、0、1、9 的数字包括: 1、2、9、10 至 32、39 和 100 至 932、939 和 1000 至 1932、1939 和 2000 至 2019。 共 1084 个。 它们的平方和为: 1^2 + 2^2 + 9^2 + (1+0)^2 + (1+1)^2 + ... + (1+9)^2 + (2+0)^2 + ... + (2+9)^2 + ... + (9+3+2)^2 + (9+3+9)^2 + ... + (1+9+3+2)^2 + (1+9+3+9)^2 + ... + (2+0+0+0)^2 + ... + (2+0+1+9)^2 = 1 + 4 + 81 + 1 + 4 + ... + 100 + ... + 10816 + ... + 40804 = 1199476 因此,在 1 到 2019 ,所有有 2、0、1、9 的数字的平方和为 1199476。 ### 回答2: 在 1 到 40 ,包括 2、0、1、9 的共有 28 个,它们的和是 574,平方和是 14362。我们可以利用这个已知条件,来计算在 1 到 2019 ,所有包含数字 2、0、1、9 的的平方和。 首先,我们可以将 1 到 2019 所有的个位、十位、百位和千位分别提取出来,分别与 2、0、1、9 进行比较,找到所有的包含这四个。 对于个位为 2、0、1、9 的,在 1 到 2019 每 10 个就会出现一个,因此它们总共出现了 202 次,它们的和为 $202 \times (2+9+1+0) = 808$,平方和为 $202 \times (2^2 + 9^2 + 1^2 + 0^2) = 246808$。 对于十位为 2、0、1、9 的,在 1 到 2019 每 100 个就会出现一个,因此它们总共出现了 21 次,它们的和为 $21 \times (20+21+29+19) = 1738$,平方和为 $21 \times (20^2 + 21^2 + 29^2 + 19^2) = 344698$。 对于百位为 2、0、1、9 的,在 1 到 2019 每 1000 个就会出现一个,因此它们总共出现了 3 次,它们的和为 $3 \times (200+100+900+1000) = 4200$,平方和为 $3 \times (200^2 + 100^2 + 900^2 + 1000^2) = 6068000$。 对于千位为 2、0、1、9 的,只有一个 2019,它的平方为 $2019^2 = 4076361$。 将上述四种的平方和相加,即可得到在 1 到 2019 所有包含数字 2、0、1、9 的的平方和为 $246808 + 344698 + 6068000 + 4076361 = 10710567$。 ### 回答3: 首先我们可以将这些列出来,它们分别是: 1, 2, 9, 10, 12, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 39, 40。 那么在 1 到 2019 ,所有这样的的平方和等于: $1^2+2^2+9^2+10^2+\cdots+32^2+39^2+40^2=(1+2+9+10+\cdots+32+39+40)^2-(1^2+2^2+9^2+10^2+\cdots+32^2+39^2+40^2)=574^2-14362=317228$ 因此,在 1 到 2019 ,所有这样的的平方和是 317228。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值