C++ U型数
U型数字
最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增。比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 3131331313,就是不是U型数字。
现在蒜头君问你,[1,100000]有多少U型数字?
提示:请不要输出多余的符号。
题目来源
思路:
这道题刚开始看起来是一个从1到1e5的循环的题,但是仔细分析之后发现这道题的规律性很强,根本不用循环1e5那么多。
这个题先是把1、2位数去掉,因为这样的数是不可能满足的,所以就从能想到的最小的U型数101开始循环。
接下来就是先算三位数U型数的个数。
当我算完三位数的个数之后,发现在千位数加上一个大于百位数的数之后或是在个位数后加上一个大于个位数的数就是一个四位的U型数了,这样就可以在三位数的基础上求出四位数的个数了。
之后同样的思路,求五位数:可以是在三位数的百位数的前面加上一个数之后在个位后加上一个数,之后前后能添加的两个数的个数相乘便可以了;但是五位数还是可以在三位数的前面加上两个数或是在三位数的后面加上两个数便可,之后我先考虑放在前面的情况,也就是选两个数放在前面,条件便是第五数大于四位数大于第三位数,所以写个函数(叠加函数)便可了。之后看代码就可了。
代码:
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
int func(int n)//叠加函数
{
int m = ;
if (n <= ) return ;
for (int i = ;i <= n;++i)
{
m += i;
}
return m;
}
int main()
{
int num = ;
for (int i = ;i < ;++i)
{
int a = i / , b = i % ;//a是百位,b是个位
int j = (i-a*)/;//j是十位数
if (a > j&& b > j)
{
num +=+ + //3位数
( - a) + ( - b) +//4位数
( - a) * ( - b) + func( - a) + func( - b);//5位数
}
}
cout << num << endl;
}
C++ U型数的更多相关文章
- 编写中断例程7ch:计算word型数据的平方
实现计算一个word型数据的平方. 这是安装程序. assume cs:code code segment start: mov ax, cs mov ds, ax mov si, offset sq ...
- 实验12:Problem H: 整型数组运算符重载
Home Web Board ProblemSet Standing Status Statistics Problem H: 整型数组运算符重载 Problem H: 整型数组运算符重载 Tim ...
- PHP中IP地址与整型数字互相转换详解
这篇文章主要介绍了PHP中IP地址与整型数字互相转换详解,本文介绍了使用PHP函数ip2long与long2ip的使用,以及它们的BUG介绍,最后给出自己写的两个算法,需要的朋友可以参考下 IP转换成 ...
- Linux C 知识 char型数字转换为int型 int型 转换为Char
前言 在九度oj做acm的时候,经常会遇到了char类型和int类型相互转化的问题,这里进行一下总结.今后,可能会多次更新博客,因为半年做了很多总结,但是都是保存在word文档上了,现在开始慢慢向CS ...
- SQL 中数值型数据截取以及四舍五入
SQL 中数值型数据截取及四舍五入 例一: -- 将两个数值分别截取只保留两位小数 ( 注意此时字段默认为 decimal ) select CAST ( 10.097 as decimal ( 10 ...
- 实验10.3_数值显示拓展_dword型数转变为表示十进制数的字符串
assume cs:code data segment db 10 dup (0) data ends code segment start : mov ax,4240H;F4240H=1000000 ...
- c# 计算一个整型数组的平均
一个整型数组的平均: class Program { static void Main(string[] args) { ,,,,,,,,,}; double avg= GetAvg(array); ...
- IP地址转换成Long型数字的算法
在应用程序开发中,涉及到IP地址的存储,大部分开发人员都将其存为String(或文本类型).能否将固定格式为m.n.x.y的IP地址转换成 Long型的数字呢?答案是肯定的.在数据库层面,可以直接将结 ...
- 字符串转换成整型数 atoi()
题目说明: 1.设计函数: int atoi(const char *nptr); 2.功能:把字符串转换成整型数,atoi()会扫描参数nptr字符串,如果第一个非空格字符存在, 是数字或者正负号则 ...
- 使用头文件climits中的符号常量获知整型数据的表数范围---gyy整理
在头文件climits(limits.h)以宏定义的方式定义了各种符号常量来表示各种整型类型表示数的范围,如int的最大最小值,long的最大最小值等. 符号常量 表示 CHAR_BIT char 的 ...
随机推荐
- ES的集群原理
文章转载自:https://www.cnblogs.com/soft2018/p/10213266.html 一.ES集群原理 查看集群健康状况:URL+ /GET _cat/health (1).E ...
- 如何消灭飞机的“黑色十分钟”,AI来帮忙
近年来,“AI的应用和落地”逐渐成了具化的关键词,它和很多事物很多行业结合在一起,形成了奇妙的“化学反应”.例如,在日常生活中,AI可以推送我们喜欢的新闻或视频,可以在拍照的时候识别场景提升照片的美感 ...
- 5万字长文:Stream和Lambda表达式最佳实践-附PDF下载
目录 1. Streams简介 1.1 创建Stream 1.2 Streams多线程 1.3 Stream的基本操作 Matching Filtering Mapping FlatMap Reduc ...
- expect使用技巧
1) 获取命令行参数,例如通过./abc.exp a1 a2执行expect脚本 set 变量名1 [lindex $argv 0] 获取第1个参数a1 set 变量名2 [lindex $argv ...
- ken桑带你读源码 之scrapy pipelines\images.py
大家先看看 http://www.cnblogs.com/attitudeY/p/7078559.html 下面我做一些补充 最新版本1.1 已经支持 下载路径保存到 item 48行 ...
- clion更改大括号的位置
进入setting 搜索code style 如果是c++ /c 选择这个选项点开 wrapping and brace 里面 有brace placement 选择你想要的方式
- 蒲公英 · JELLY技术周刊 Vol.16 谷歌首个线上 Web 开发者大会
蒲公英 · JELLY技术周刊 Vol.16 近期,谷歌有史以来的第一次线上谷歌 Web 开发者大会,Web Vitals.PWA.DevTools 和 Lighthouse 6.0 等一系列特性或产 ...
- Day10_ElasticSearch
学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 老师的码 ...
- 遍历多个 txt 文件进行获取值
import random def load_config(path): with open(path,'r') as tou: return [line for line in tou.readli ...
- PDOStatement::errorInfo
PDOStatement::errorInfo — 获取跟上一次语句句柄操作相关的扩展错误信息(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 array ...