蓝桥杯-省赛-洁净数

题目描述

小明非常不喜欢数字 2,包括那些数位上包含数字 2 的数。如果一个数的数位不包含数字 2,小明将它称为洁净数。

请问在整数 1 至 nn 中,洁净数有多少个?

输入描述

输入的第一行包含一个整数 n(1≤n≤106)n(1≤n≤106)。

输出描述

输出一行包含一个整数,表示答案。

输入输出样例

示例

输入

30

输出

18

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

import os

import sys

# 请在此输入您的代码

def water():

    n=int(input())

    cout=0

    for i in range(1,n+1):

        if '2'  in str(i):

            continue

        else:

            cout+=1

    print(cout)

water()



这段代码主要用于解决在整数 1 至 n 中寻找洁净数(即数位不包含数字 2 的数)的数量问题,它涉及以下几个知识点:

1. 输入处理

  • 获取用户输入:借助 input() 函数从标准输入读取用户输入的整数 n,同时使用 int() 函数把输入的字符串转换为整数类型。这是因为 input() 函数返回的是字符串类型,而在后续计算中需要使用整数类型。

2. 循环结构

  • for 循环:运用 for 循环遍历从 1 到 n 的所有整数。range(1, n + 1) 会生成一个包含从 1 到 n 的整数序列,这样就能逐个检查这些整数是否为洁净数。

3. 条件判断

  • if 语句:在循环里使用 if 语句来判断当前整数是否包含数字 2。具体做法是将整数转换为字符串,然后使用 in 操作符检查字符串中是否包含字符 '2'。若包含,就使用 continue 语句跳过当前循环,继续检查下一个整数;若不包含,则将计数器 cout 加 1。

4. 字符串操作

  • 整数转字符串:使用 str() 函数把整数转换为字符串,这样就能利用字符串的特性进行字符检查。字符串是由字符组成的序列,可以使用 in 操作符来检查某个字符是否存在于字符串中。

5. 输出处理

  • 打印结果:使用 print() 函数将最终的洁净数数量输出到标准输出。

6. 函数定义与调用

  • 函数定义:定义了一个名为 water() 的函数,函数内部实现了寻找洁净数数量的逻辑。
  • 函数调用:在代码的最后调用 water() 函数,从而执行函数内部的逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值