Online Judge 0004:双基回文数

 

Time Limit:
10000ms
Memory Limit:
65536kB
Description

如果一个正整数n至少在两个不同的进位制b1和b2下都是回文数(2<=b1,b2<=10< span="">),则称n是双基回文数(注意,回文数不能包含前导零)。输入十进制的正整数S<106,输出比S大的最小双基回文数(十进制)

Input
一个十进制整数
Output
一个十进制整数
Sample Input
1600000
Sample Output
1632995

 

 

http://nnsznoi.openjudge.cn/directlycalculatin/0004/

 

第一想法尝试用itoa,但是g++不支持。

因此需要自己实现itoa,参考http://stackoverflow.com/questions/228005/alternative-to-itoa-for-converting-integer-to-string-c

 

string itoa(int a)
{
    string ss="";   //create empty string
    while(a)
    {
        int x=a%10;
        a/=10;
        char i='0';
        i=i+x;
        ss=i+ss;      //append new character at the front of the string!
    }
    return ss;
}


但发现运行的很慢,因此需要避免char相加,改进如下:

 

string myitoa(int a, int base)
{
	string ss;
	ss.clear();
	while(a)
	{
		ss += (a%base);
		a /= base;
	}
	return ss;
}



 

AC code:

 

#define RUN
#ifdef RUN

/**
http://nnsznoi.openjudge.cn/directlycalculatin/0004/
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <vector>
#include <list>
#include <cctype> 
#include <algorithm>
#include <utility>
#include <math.h>

using namespace std;

#define LL long long
#define MAXN 1000001


char tmp[MAXN];

string myitoa(int a, int base)
{
	string ss;
	ss.clear();
	while(a)
	{
		ss += (a%base);
		a /= base;
	}
	return ss;
}

bool isPalindrome(string s){
	int len = s.length();
	for(int i=0; i<len/2; i++){
		if(s[i] != s[len-1-i]){
			return false;
		}
	}
	return true;
}

void check(LL n){
	LL test = n+1;

	for(;;){
		int cnt = 0;
		for(int i=2; i<=10; i++){
			//itoa(test, tmp, i);
			string s = myitoa(test, i);
			
			if(isPalindrome(s)){
				//cout << test << "--" << s << "---" << cnt << endl;
				cnt++;
				if(cnt >= 2){
					cout << test << endl;
					return;
				}
			}
		}
		++test;
	}
}



int main(){

#ifndef ONLINE_JUDGE
	freopen("oj0004.in", "r", stdin);
	freopen("oj0004.out", "w", stdout); 
#endif

	LL n;

	while(scanf("%lld",&n) != EOF){
		check(n);
	}

}


#endif



 

【2026年华为暑期实习-非AI方向(通软&嵌软&测试&算法&数据科学)- 7月15日-第二题- 手机多载波冲突选择】(题目+思路+Java&C++&Python解析+在线测试) 摘要 本文提出了一种解决手机基站载波选择问题的回溯算法。给定N个载波,每个载波具有带宽和所属频段,要求选择最多K个载波,满足:1) 不选择同一频段的多个载波;2) 不选择冲突频段的载波;3) 总带宽最大化。算法通过预处理冲突关系,使用位掩码优化冲突检查,按编号顺序回溯枚举所有可能组合。当找到更大带宽或相同带宽但字典序更小的组合时更新答案。该方法在N≤25和K≤8的约束下高效可行,并通过样例验证了正确性。输出为最大总带宽和对应的最优载波编号序列。 阅读详情

相关推荐

Outlook邮件备份全攻略:从导出到导入的完整流程(附常见问题解决)

本文提供了一份详尽的Outlook邮件备份全攻略,涵盖从导出到导入的完整流程。重点解析了经典桌面版Outlook的.pst文件备份方法、进阶的智能筛选备份策略,以及如何通过导入恢复和工具验证确保备份可用。同时,文章还介绍了构建自动化备份体系与异地容灾的最佳实践,并附有常见问题解决方案,帮助用户建立可靠的邮件数据安全防线。

weixin_29248611的博客 889

双基回文数

双基回文数就是在2-9的进制下,所构成的数字是一个回文(就是正着读和逆着读一样,比如12321) 那么让你来判断1个数是不是双基回文数 下面是代码 #include #include #define MAX_SIZE 100 + 10 int operator(int m,int n) /*将m转化为n进制的数字*/ { if(m==0) /*对于任何进制,0都是0,一定是一个回文*

花月阁 1113

【光学仿真】基于Matlab的LG/BG/PV/HG光束生成与特性分析【附完整源码】

本文详细介绍了如何使用Matlab进行拉盖尔-高斯(LG)、贝塞尔-高斯(BG)、完美涡旋(PV)和厄米-高斯(HG)四种特殊光束的仿真与特性分析。通过提供完整的Matlab源码,手把手指导读者生成光束、分析其强度、相位、传播特性及轨道角动量,为光学研究、激光应用及教学提供了直观高效的数值实验平台。

3a9bq4r8t2y的博客 490

双基回文数 简单枚举 暴力啊

如果一个正整数n至少在两个不同的进位制b1和b2下都是回文数(2<=b1,b2<=10),则称n是双基回文数(注意,回文数不能包含前导零).输入正整数S<10的6次方,输出笔S大的 最小双基回文数. 样例输入:1600000 样例输出:1632995 分析:最自然的想法就是:从n+1开始依次判断每个数是否为双基回文数,而在判断时要枚举所有可能的基数(2-10),...

dizhuang3784的博客 164

大彩串口屏+LUA避坑指南:从Flash读写到控件状态配置的5个常见问题

本文针对大彩串口屏的LUA脚本开发,深度剖析了Flash数据存储与控件状态配置中的5个常见陷阱。重点讲解了如何通过标志位安全初始化Flash、正确处理多字节数据转换,以及如何精准配置按钮与文本控件的状态与事件响应,帮助开发者提升开发效率与代码可靠性。

weixin_27945229的博客 241

云计算系统等保测评对象和指标选取

参考GBT22239-2019《基本要求》附录D 云计算应用场景说明。简要理解下图,主要是云计算系统安全保护责任分担原则和云服务模式适用性原则,指导后续的测评对象和指标选取。

ryanzzzzz的博客 4677

C语言实现计算双基回文数详解

双基回文数的定义: 如果一个正整数n至少在两个不同的进位制(二进制<=进制=<十进制)b1和b2下都是回文数,则称n是双基回文数。 根据定义,简单的说就是在二进制到十进制之间(包括十进制和二进制),如果n在这其中任意两个进制上是回文数,则n就是双基回文数。 程序功能: 输入正整数S<10^6,输出比S大的最小双基回文数 源代码及注释: #include<...

weixin_30363817的博客 219

Python量化交易实战:如何用vnpy+Tushare获取股票历史数据(附完整代码)

本文详细介绍了如何利用vn.py框架与Tushare数据接口,构建一个健壮的Python量化交易数据获取引擎。通过封装Tushare API,实现股票历史数据的自动化获取与格式转换,并适配vn.py的BarData结构,为策略回测与实盘交易提供稳定、高效的数据基础。文中提供了完整的代码实现,涵盖环境配置、核心封装逻辑及高级功能扩展。

cola5的博客 1219

双基回文数!!!

问题描述 : 如果一个正整数n,在两个

谈笑风声,雨下成林 1085

YOLOV5 自动刷图脚本实战(十五)之如何找到正确的门

DXF是一个2D游戏,我们所看到的人物移动,其实是后面的背景在移动,我们所看到的画面,不过是一个完整背景中的一个镜头视角而已想要正确找到门的坐标,我们需要对不同的地图中的每个房间做一些配置信息。

qq_38892949的博客 2805

铁路场景雷达点云目标识别与追踪系统

本文介绍了一种基于毫米波雷达的铁路货运车站安全监控系统。该系统采用分布式架构,通过多个毫米波雷达节点采集点云数据,经过坐标转换、多雷达融合等处理后,利用机器学习算法实现列车、行人等目标的实时识别与追踪。系统包含数据采集层、处理层、目标识别层、追踪层、预警决策层和可视化层,能够克服传统视频监控受环境影响大的缺点,实现全天候可靠监测。文中详细展示了雷达数据解析和点云预处理的代码实现,包括坐标转换、数据格式解析和体素网格滤波等关键技术。该系统可有效预警铁路场景下的碰撞风险,提升货运车站的安全管理水平。

huanghm88的专栏 125

PCB行业现状与未来:技术演进与市场机遇

PCB(Printed Circuit Board)作为电子产品的核心载体,其技术演进与市场需求紧密相关。随着高频高速材料和环保基材的普及,PCB行业正经历材料革命。从原理上看,高频板材如罗杰斯4350B和MEGTRON6能够显著降低信号损耗,满足5G和AI服务器的严苛要求。在技术价值层面,HDI板和Any-layer技术的应用提升了电路密度和性能,尤其适用于新能源汽车和医疗电子等高附加值领域。当前,汽车电子和服务器PCB已成为行业新蓝海,而传统消费电子需求放缓倒逼企业转型。面对设备升级的高成本和技术代差,

weixin_30700977的博客 377

捷联惯导,其实没有你想象的那么复杂!(附:惯导嵌入式应用中需要的一些C代码)

摘要:捷联惯导系统将惯性测量单元固连于运动载体,通过核心算法实现导航解算。系统首先进行传感器误差补偿和初始对准,然后利用陀螺和加速度计数据,通过姿态更新算法(如四元数法)计算载体相对于地理系的姿态。加速度数据经比力方程转换后积分得到速度和位置,过程中需补偿圆锥误差和划船效应。捷联惯导通过数字平台替代物理平台,实现了载体坐标系与导航坐标系的实时转换,是当前惯性导航系统的主流方案。

victoryqian528的博客 269

客户标签自动化运营实战:提升私域流量效率

客户标签管理是私域流量运营中的核心技术,通过自动化规则实现精准客户分群。其原理是基于事件驱动架构,结合规则引擎实时处理用户行为数据,动态更新标签。这种技术能显著提升运营效率,减少人工干预,确保营销决策的时效性。典型应用场景包括高价值客户识别、购物车放弃者召回等。CRMEB Pro的自动化标签功能采用Drools规则引擎,实现秒级响应,支持多维条件组合,帮助电商企业构建精细化运营体系。通过合理配置标签规则和性能优化,可有效提升客户转化率并降低营销成本。

weixin_34208283的博客 369

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

c语言程序设计作业3

数组的使用能够通过简单的编程去完成复杂的数据处理。 1.数组中每个元素只带有一个下标时,这个数组被称为一维数组(数组的命名规则与变量名的命名规则一致)(常量表达式表示数组的元素的个数,可以是常量和符号常量,但不能是变量) 。 2.定义中的a[10]与输入的a[10]的意思不同,int a[10]是指从a[0]到a[9]共十个数,而输入的得看前面i的定义。 3.c++语言中,每个数组第一个元素...

qq_43641727的博客 386

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ACMjava简单枚举除法,分数拆分,双基回文数,最大乘积

package com.supermars.practice; import java.io.BufferedInputStream; import java.util.Scanner; public class 简单枚举除法 {     static Scanner cin = new Scanner(new BufferedInputStream(System.in));

阿利在努力 1349

假人有限元模型

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

暴力求解双基回文数

双基回文数如果一个正整数n至少在两种不同的进制下b1和b2下都是回文数(2&lt;=b1,b2&lt;=10),则称n是双基回文数(注意,回文数不能包含前导零)。输入正整数S&lt;10^6,输出比S大的最小的双基回文数。样例输入:1600000样例输出:1632995个人理解:只需要从n+1开始依此判断每个数是否符合题目中对双基回文数的定义即可。代码:#include &lt;stdio.h&g...

wang_fu_grong_16的博客 366

暴力求解法-双基回文数

import java.util.ArrayList; import java.util.Scanner; public class B23 { public static String change(int num,int d){ StringBuffer s=new StringBuffer(); while(num!=0){ s.insert(0,(

The Void 964

算法练习--双基回文数

如果一个正整数N至少在两个不同的进制b1和b2下都是回文(2&lt;=b&lt;=10) , 则称N问双基回文数。问,对于区间 [1000000,10000000),输出第一个双基回文数。function s(){ var done = 0; var c = 0; var n = 0; for(var j = 1600000;done &lt; 2 &amp;&amp; j &lt;= 10000...

mybwu_com的专栏 231

7.1.4双基回文数 by基友组

#include using namespace std; int main() { int x,n,a[9][100],i,j,m,k,t; cin>>x; for(n=x;;n++) { t=0; for(i=0;i<9;i++) { m=n; j=0; while(m) { a[i

918
上一篇: UVA 10976 - Fractions Again?!
下一篇: Online Judge 0004:双基回文数
chiiis
博客等级 码龄14年 422粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值