第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)(热身赛) A 2020

博客围绕计算[1,N]中由两个相同整数构成(无前导零)的好数数量展开。先明确好数定义,如2020、19991999等。接着给出解题思路,奇数和偶数情况处理不同。最后展示了打表代码和AC代码。

2020 is a special integer, it’s formed of two same integers (20 and 20).

We call a number is a good number, if and only if it can be formed of two same integers(without leading zero).

For example: 2020 11, 19991999 are good numbers, but 303, 1122, 1221 are not.

Now you need to count the number of good numbers in [1,N][1,N][1,N]
在这里插入图片描述

在这里插入图片描述

题意

给出一个 <=1e18 的n 求从1到n中有多少个数是由两个相同的数构成的。

思路

输入字符串写出打表程序,发现
奇数时答案为s.size()/2 个9
偶数时把字符串分成两半,如果后面的数大于等于前面的,就输出前面的数,否则把字符串转换为数减一后输出。

代码

打表代码

#include <bits/stdc++.h>
using namespace std;

bool ok(string s)
{
   
   
	int len = s.size();
	if(len & 1) return false;
	string now1 = "" , now2 = "";
	for
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值