POJ 2402 Palindrome Numbers(LA 2889) 回文数

hnust - 求第几个回文数 1146: 伤不起的回文数 题目描述 据说上一次的素数回文把aigo难了一把,悲剧了几把。今天aigo又接到陈老大的一个任务,但是aigo最近搞学习有点累了,想请聪明的你帮忙解决。 回文数是可以从1开始的,现给每一个回文数一个标号,从1开始,所以9的标号是9了,请求出标号为n的回文数。 输入 多组测试数据,每组一行,只有一个整数n,1<=n<=2*10^9. 输出 输出标号为n的回文数。 阅读详情

POJ:http://poj.org/problem?id=2402

LA:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=890

题目大意:

回文数从小到大排列为:1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, ……输入n,(1<=n<=2*10^9),求第n小的回文数。

思路:

我们先统计一下i个数字组成的回文数的个数,cnt[i]=cnt[i-1]+9*mypow(10,p);

然后第n个回文数只要看看他是几位的就可以了。

如n=520,求出他需要5位,而1~4位所有的回文数个数(总的)为198,故k=520-198=322

找100为三位的基准,(为什么是3位? 长度为5的一般,向上取整。。为什么是100,三位最小哇)

100+k-1=100+321=421

所以一半求出来了,另一半呢(T T不是指对象)

根据对称性,可得42124


版本一:

#include<cstdio>
#include<cstring>
#include<cmath>
typedef long long LL;
const int MAXN=20;
LL cnt[MAXN]={0};
char ans[MAXN];
LL mypow(LL x,LL p)  
{  
	long long res=1;  
	while(p--) res*=x;  
	return res;   
}   
int main()
{
	for(int i=1;i<MAXN;i++)
	{
		LL p=(i+1)/2-1;
		cnt[i]=cnt[i-1]+9*mypow(10,p);
	}

	int n;
	while(~scanf("%d",&n),n)
	{
		int k,num;
		for(int i=1;i<MAXN;i++)
		{
			if(n <= cnt[i])    //万恶的等于号!!!!
			{
				k=n-cnt[i-1];//还需要的个数
				num=i;  //位数
				break;
			}
		}
		int len=num;
		num=(num+1)/2;
		LL x=mypow(10,num-1)+k-1;

		printf("%lld",x);
		if(len %2!=0) x/=10;
		while(x) 
		{
			printf("%lld",x%10);
			x/=10;
		}
		printf("\n");
	}
	return 0;
}

版本二:(请选择G++提交,因为pow函数要double而我是long long ,c++会说CP)

#include<cstdio>
#include<cmath>
#include<cstring>
typedef long long LL;
const int MAXN=22;
LL cnt[MAXN]={0};
char ans[MAXN];
int main()
{
	for(int i=1;i<MAXN;i++)
	{
		LL p=(i+1)/2-1;
		cnt[i]=cnt[i-1]+9*pow(10,p);
	}

	int n;
	while(~scanf("%d",&n),n)
	{
		int k,num;
		for(int i=1;i<MAXN;i++)
		{
			if(n <= cnt[i])
			{
				k=n-cnt[i-1];
				num=i;
				break;
			}
		}

		LL x=pow(10,(num+1)/2-1);
		x+=k-1;
		sprintf(ans,"%lld",x);
		int len=strlen(ans);
		for(int i=0;i<len;i++)
			printf("%c",ans[i]);
		if(num &&num % 2==0)
			printf("%c",ans[len-1]);
		for(int i=len-2;i>=0;i--)
			printf("%c",ans[i]);
		printf("\n");
	}
	return 0;
}


Cursor使用教程,有点难 Cursor Code Editor 不仅仅是一个代码编辑器,它更是一个集成了 AI 的全功能开发环境,帮助你从代码编写到优化的整个过程变得更加智能和高效。它通过内置的 AI 代码补全、错误检测和自动修复功能,大大减少了手动编写代码的负担,帮助你快速完成开发任务。同时,Cursor 还与多种前沿的 AI 大模型集成,包括 OpenAI 的 GPT-4o、Claude 3.5 和 Meta 的 Llama 3.1。 阅读详情

相关推荐

ROS入门必学导航算法——Navigation

该平台集成了多款无人车底盘,包括履带式、四轮差速、阿克曼、麦克纳姆轮底盘等,以满足不同形式和配置的需求,并搭载了RTK定位系统、双目相机、深度相机和激光雷达等多种传感器,以满足开发者的科研需求。amcl节点接收里程计数据(通过"odom"话题)和激光雷达数据(通常通过"scan"话题),结合已知的地图,实时地估计出机器人在该地图上的位置。在ROS中,这是通过"tf库"变换实现的,通过将传感器数据转换到共同的参考系中,系统可以更容易地集成来自不同传感器的数据,并确保它们在相同的空间和时间范围内可用。

AMOVLAB(阿木实验室) 2909

问题1020:最小回文数

最小的回文数 描述 回文数是从前往后和从后往前得到的数是相同的。 现给你一个正整数N,请你找到比N大的最小的那个回文数P。 (利用输出回文数的原理进行寻找) 输入 输入包含多组测试数据。 每组输入一个正整数N,N不超过10000位,并且N不包含前导0。 输出 对于每组输入,输出比N大的最小的那个回文数P。 输入样例 1 44 3 175 输出样例 1 55 4 181 字符模拟 #include <cstdio> #include <cstring> #

qq_45748941的博客 2860

数字信号处理实验:信号谱分析与FFT算法的应用

​ (1)给定信号为 ,其中a为42,b为1。理论分析信号 的频率成分。 (2)分别采用采样频率为 , , , 对 进行采样,其中 , , , ,根据是否满足采样定理要求分析四种采样频率下频谱的分布,在满足采样定理情况下做频谱分析。 (3)任意生成两组有限长信号,对信号分别进行直接卷积和FFT算法求卷积,并分析圆周卷积与线性卷积的关系。

m0_56324525的博客 3203

OJ 1020 最小的回文数

描述 回文数是从前往后和从后往前得到的数是相同的。 现给你一个正整数N,请你找到比N大的最小的那个回文数P。 输入 输入包含多组测试数据。 每组输入一个正整数N,N不超过10000位,并且N不包含前导0。 输出 对于每组输入,输出比N大的最小的那个回文数P。 输入样例 1 44 3 175 输出样例 1 55 4 181 题解 首先,题目以及声明N不超过1000位即N<=10^1000,这个正常的数字一定是无法存储的,即使是long long也不可能存这么大的数字,同时既然数

JetEcho的博客 1363

让AI稳定生成流程图:基于Skill与Mermaid的工程化实践

流程图是软件工程中沟通业务逻辑的通用语言,但其绘制与维护却长期依赖手工工具,导致文档更新滞后、协作成本高。随着大语言模型技术的成熟,自然语言生成代码已成为可落地的技术路径,而Mermaid作为一款文本化图表语法,凭借其可版本管理、可自动渲染和可嵌入文档的优势,正逐步取代传统绘图工具。要让AI稳定输出合格的流程图,关键在于为模型定义一套清晰的Skill规则,约束输入结构、处理逻辑和输出格式。本文从流程图的工程痛点出发,介绍如何利用大模型将自然语言描述转化为结构化文本,再通过Mermaid CLI渲染成可视化图

weixin_42548782的博客 312

基于SVPWM控制策略的二极管钳位型NPC逆变器并网闭环simulink仿真

本文介绍了二极管钳位型三电平SVPWM技术在逆变器中的应用,通过控制IGBT的开关状态,将直流电压转换为三相交流电压,并采用钳位技术降低谐波失真,提高输出质量。文章还描述了基于SVPWM控制策略的二极管钳位型NPC逆变器并网闭环的Simulink仿真模型,该模型实现了并网控制,具有优异的性能,THD小于1%,适用于新手学习。仿真模型参数包括DC 800V、AC 380V、功率100kw,采用三电平NPC拓扑结构和SVPWM闭环控制策略,配备LCL滤波器,生成三电平波形,监测交流侧电压电流、有功功率和无功功率

2510_91195931的博客 468

【C语言程序设计】C语言回文数怎么求?

问题描述 打印所有不超过n(取n<256)的其平方具有对称性质的数(也称回文数)。 问题分析 对于要判定的数n计算出其平方后(存于a),按照“回文数”的定义要将最高位与最低位、次高位与次低位……进行比较,若彼此相等则为回文数。此算法需要知道平方数的位数,再一一将每一位分解、比较,此方法对于位数已知且位数不是太多的数来说比较适用。 此问题可借助数组来解决。将平方后的(a的)每一位进行分解,按从低位到高位的顺序依次暂存到数组中,再将数组中的元素按照下标从大到小的顺序重新将其组合成一个数众(如.

HUYA69的博客 3376

钣金件设计规范

为保证折弯 强度,钣金折弯钣金应大于材料的最小折弯半径。在设计U型弯曲件时,两弯曲边最好长度相等,以免弯曲时产品偏 移而产生废品,如果因为结构设计不允许两边一样长,为保证产品在模 具中准确定位,应预先在设计时添加工艺定位孔,特别是多次折弯成 形的零件,必须设计工艺孔为定位基准,以减少累计误差,保证产品 质量,如图2-11所示。凸包是依靠材料的延伸使钣金件形成局部凹陷或凸起的冲压工序凸包与拉深是完全不同的冲压工艺,凸包中材料厚度的改变为费意图性 的,即厚度的少量改变是变形过程中形成的,不是设计指定的要求。

制冷技术咨询与服务的博客 7330

UVa12050

12050 Palindrome NumbersA palindrome is a word, number, or phrase that reads the same forwards as backwards. For example,the name “anna” is a palindrome. Numbers can also be palindromes (e.g. 151 or 7...

weixin_30481087的博客 145

从零构建:Trinamic API在STM32上的深度移植与TMC-IDE通信实战

本文详细介绍了如何从零开始在STM32平台上深度移植Trinamic API,并实现与TMC-IDE工具的稳定通信。内容涵盖SPI底层驱动定制、寄存器配置、高级功能实现及调试技巧,重点解析了TMC5160芯片的集成实践,帮助开发者构建可靠的嵌入式运动控制系统。

w1x2y3的博客 254

使用pyqt5实现可勾选的测试用例界面

使用pyqt5实现可勾选的测试用例界面

天赐好车的博客 629

POJ2402 Palindrome Numbers 回文数

题目链接: http://poj.org/problem?id=2402 题目大意就是让你找到第n个回文数是什么. 第一个思路当然是一个一个地构造回文数直到找到第n个回文数为止(也许大部分人一开始都是这样的思路). 很明显找到第n个之前的所有操作都是浪费, 这也是这个方法的最大弱点. 抱着侥幸心理(谁知道数据弱不弱啊)用这种方法提交了下, TLE (在另一个OJ上提交是9个测试点过了6个). ...

weixin_30493401的博客 174

UNet改进(23):如何用SLCAM模块提升UNet的分割性能

本文提出一种改进的UNet架构,通过引入轻量化注意力模块(SLCAM)增强医学图像分割性能。SLCAM整合了通道和空间双重注意力机制:通道注意力采用全局池化和共享MLP学习通道权重,空间注意力通过7×7卷积捕捉上下文信息。网络在传统UNet基础上,在每个下采样和上采样块后加入SLCAM模块,并保持跳跃连接结构。实验表明,该方法能自适应聚焦重要特征,在不显著增加计算负担的情况下提升分割精度,特别适用于医学图像等需精确边界的场景。未来可探索三维注意力、动态参数调整等改进方向。

2501_91516851的博客 440

求n位数字构成的第k个回文数

int main() { int T; cin>>T; while(T--){ int n, k; cin>>n>>k; int temp; if(n%2==0){ temp = pow(10, n/2-1); temp ...

futangxiang4793的博客 1322

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

poj2402(计算第k个回文数)

题目链接:poj2402 /* 题意: 求第n个回文数 思路: 不难发现规律,1位和2位的回文数有9个,3位和4位的回文数有90个。。。。 首先求出第k位的基数 10^((k-1)/2),再计算出第n个回文数是几位数, 对半后,对前半段进行填数,后半段的只要将前半段反向输出即可 */ #include #include #include #include using n

no pains,no gains 2150

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

poj 2402

数位统计问题,求出第K个回文数字。定义dp[i][j]表示i位数字以j作为开始和结尾的回文数字个数,则dp[i][j]+=dp[i-2][k](k=0-9)。 然后从高位开始一次确定每一位的数字。一些中间变量要超long long。 #include #include #include #include #include using namespace std; const int inf=2

suressay的专栏 721

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Palindrome Numbers(LA2889)第n个回文数是?

J - Palindrome Numbers Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Practice UVALive 2889       WA了一版面,我也是醉了,就因为一个编译环境不同。。。。。。   说多了都是泪。   题

寻找&星空の孩子 1331

回文数 找第n个回文数

package HW;public class NthHuiWenNum { //数位指个位,十位,百位,千位。。。 public static void main(String[] args) { int input = 1201; //Integer.parseInt(args[0]); long res = find(in

小y的专栏 1417

UVALive 2889(回文数字)

题意:给定i,输出第i个回文数字。 分析:1,2,3,4,……,9------------------------------------------------------------------------------------------9个    11,12,13,14,……,19-----------------------------------------------...

Cherrychan2014的博客 199

UVALive 2889 (数学)

题意:求第n大的回文数字. 截取对称中心前面的那一段数字,从大到小依次就是1,2,3......11,12,13......,100,101 而以某个数字为对称中心前一段的数字共有两种,比如13就有131和1331. 所以判断一下是哪一种就好了. #include #include #include #include #include #include #include #i

morejarphone~ 576

POJ 2402 Palindrome Numbers 笔记

对所有数字组成的回文编号,单个数字也是回文。求编号为 i 的回文。

woniupengpeng的专栏 343

POJ 2402 Palindrome Numbers

Palindrome Numbers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3943   Accepted: 1502 Description A palindrome is a word, number, or phrase that reads t

Mr_Treeeee的博客 366

POJ2402+模拟

题意:找出第index 个回文数。 这题是有规律的,即list[]数组。 其次,对于某个 index 可以先精确到 位数 pos,然后在进行分析。 1a 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 typedef __int64 int...

weixin_30889885的博客 137

E - Palindrome Numbers POJ - 2402

A palindrome is a word, number, or phrase that reads the same forwards as backwards. For example, the name “anna” is a palindrome. Numbers can also be palindromes (e.g. 151 or 753357). Additionally num

Irish_Moonshine的博客 429

UVaLIve 2889 | LA 2889 | UVa 12050 - Palindrome Numbers (组合数学)

A palindrome is a word, number, or phrase that reads the same forwards as backwards. For example, the name "anna" is a palindrome. Numbers can also be palindromes (e.g. 151 or 753357). Additionally

zhaosdfa 1127
上一篇: UVA 10943 - How do you add? 递推
下一篇: UVA 10791 - Minimum Sum LCM
hr_whisper
博客等级 码龄14年 132粉丝 322原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值