当前位置: 首页 > news >正文

2020蓝桥杯真题洁净数 C语言/C++

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

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

输入描述
输入的第一行包含一个整数 n(1≤n≤10^6)。

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

输入输出样例
示例
输入

30
输出

18
运行限制
最大运行时间:1s
最大运行内存: 256M

所需变量

int shuwei;//代表没位数上是多少

int n;//代表终止条件的n

int sum = 0;//代表中共有多少个洁净数,初始化为0

int i;//循环变量

思路:我们首先要知道判断一个数的数位上是否有2,如果2我们就返回0,如果没有就返回一,具体做法就是首先把每位都分别取出来,然后对其进行判断是否是2,如果是2,直接就返回0,如果不是2,那我们接着判断直到全部不为2,或者有一个就终止判断条件,这样我们就跳出循环!

int solution(int a){int shuwei = 0;while(a>0){shuwei = a%10;if(shuwei == 2){return 0;}a = a/10;}return 1;
}

对于程序main函数我们首先要获取n,得到n之后我们就不断的将1到n中的数不断输入解决函数中,以此判断是否为洁净数,最后如果每次判断返回1那么我们总数就+1,最后得到总数sum输出出来就可以了!
该算法本人认为比较优,如果有更好的想法,欢迎q我!
代码如下(编译器是dev,语言是C语言)

#include <iostream>
using namespace std;
int solution(int a){int shuwei = 0;while(a>0){shuwei = a%10;if(shuwei == 2){return 0;}a = a/10;}return 1;
}
int main()
{int n;int i,sum = 0;cin>>n;for(i = 1;i<=n;i++){if(solution(i)){sum++;}}cout<<sum<<endl;return 0;
}

2020

http://www.lryc.cn/news/35998.html

相关文章:

  • 【随笔二】useReducer详解及其应用场景
  • 打怪升级之istringstream介绍
  • 系统重装漏洞
  • C++面向对象编程之五:友元(friend)
  • [手写OS]动手实现一个OS 之X86实模式下的汇编开发
  • 【Linux内核二】常用的网络丢包错包debug工具介绍
  • qt控件增加渐变色效果
  • 【node : 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 最全面有效的解决方案】
  • 打怪升级之字符串的分界符与字符串替换
  • 载荷台子使用方式
  • 1005 继续(3n + 1)猜想
  • VMware15配置NAT模式联通网络
  • doPost的实际使用
  • 2017年MathorCup数学建模A题流程工业的智能制造解题全过程文档及程序
  • HNU-电子测试平台与工具2-数模转换
  • CentOS7安装Telnet客户端和服务端和使用方式
  • 脂肪毒性的新兴调节剂——肠道微生物组
  • 【JavaSE系列】 第九节 —— 多态那些事儿
  • ego微商小程序项目-测试步骤
  • 华为OD机试用Python实现 -【报数游戏】2023Q1 A卷
  • Plsql使用
  • 小丑改造计划之四线程控制
  • Spring注册Bean的几种方式
  • Egg:使用joi进行参数校验以及注册接口小demo
  • 天梯赛训练L1-016(查验身份证)
  • 技术方案评审
  • Python机器学习库scikit-learn在Anaconda中的配置
  • yarn init 没有 ts 类型声明
  • 孩子喜欢打人父母要怎么引导?听听专家的小建议
  • Hive中order by,sort by,distribute by,Cluster by