博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
样题2
阅读量:2083 次
发布时间:2019-04-29

本文共 930 字,大约阅读时间需要 3 分钟。

发现要学的东西其实还有好多呢。。。

相当于从头开始学算法?
真后悔去年没有报名。。。
样题二题目

【问题描述】

小明对数位中含有2、0、1、9的数字很感兴趣(不包括前导0),在1到40中这样的数包括1、2、9、10至32、39和40,共28个,他们的和是574。
请问,在 1 到 n 中,所有这样的数的和是多少?
【输入格式】
输入一行包含一个整数 n。
【输出格式】
输出一行,包含一个整数,表示满足条件的数的和。
【样例输入】
40
【样例输出】
574
【评测用例规模与约定】
对于20%的评测用例,1≤n≤10。
对于50%的评测用例,1≤n≤100。
对于80%的评测用例,1≤n≤1000。
对于所有评测用例,1≤n≤10000。

代码如下:

简单算法就是:
%10,可以得到数字的最后一位,然后/10相当于去掉数字的最后一位,然后进行一位一位进行判断,没有时间复杂度的限制,只需暴力即可,而且范围也不是很大
代码如下

#include
#include
#include
using namespace std;int main(){
int n,count_=0,ans=0; cin>>n; for(int i = 1; i <= n; i++) {
int t = i,flag = 0; while(t > 0) {
int g = t%10; if(g == 2||g == 0||g==1 ||g==9) {
flag = 1; ans=ans+i; break; } t=t/10; } } cout<
<<'\n'; return 0;}

还有一种想法用字符串,稍后会更~,欢迎指正

转载地址:http://yekqf.baihongyu.com/

你可能感兴趣的文章
HTTP高并发测试
查看>>
数据重生:让神经机器翻译中的不活跃样本“复活”
查看>>
【Java】【28】提高List的removeAll方法的效率
查看>>
【JS】【31】读取json文件
查看>>
OpenSSL源代码学习[转]
查看>>
linux放音乐cd
查看>>
GridView+存储过程实现'真分页'
查看>>
flask_migrate
查看>>
解决activemq多消费者并发处理
查看>>
UDP连接和TCP连接的异同
查看>>
hibernate 时间段查询
查看>>
java操作cookie 实现两周内自动登录
查看>>
Tomcat 7优化前及优化后的性能对比
查看>>
Java Guava中的函数式编程讲解
查看>>
Eclipse Memory Analyzer 使用技巧
查看>>
tomcat连接超时
查看>>
强引用 软引用 弱引用 虚引用
查看>>
数据类型 java转换
查看>>
"NetworkError: 400 Bad Request - http://172.16.47.117:8088/rhip/**/####t/approval?date=976
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>