算法趣题之回文数

题目:求用十进制、二进制、八进制表示都是回文数的所有数字中,大于十进制数10的最小值。

啥叫回文数:如果把某个十进制数按相反的顺序排列,得到的数和原来的数相同,则这个数就是”回文数“。例如12321就是一个回文数。

这个题目拿Ruby、JavaScript、python、Java都很容易实现,因为这些语言都提供了字符串逆序处理的接口,或者相关其他接口,而C语言没有提供直接转换的接口,所以下面用C语言解题,其中设计的封装在工作中也会经常碰到,故记录并分享,如有错误或者有更好的算法,欢迎留言。

题目摘自书籍《程序员的算法趣题》

原文地址:https://www.cnblogs.com/yinguojin/p/10225511.html

时间: 2025-01-17 04:57:22

算法趣题之回文数的相关文章

第二届战神杯线上编程挑战赛月赛第一题:回文数

题目详情: Njzy学习了回文串后联想到了回文数,他希望统计出一个区间内的全部回文数.如今给定一个闭区间[a,b],求这个区间里有多少个回文数. 比方[20,30],仅仅有一个回文数那就是22. 输入描写叙述: 输入包括多组測试数据,每组測试数据包括两个整数a,b, (0<a<=b<10^6). 输出描写叙述: 对于每组測试数据输出对应的答案. 答题说明: 输入例子: 1 10 20 30 300 400 输出例子: 9 1 10 解题思路: total[i]代表从1到i之间有多少回文数

算法:判断是否回文数

题目:判断传入数字是否为回文数. 回文数是指一个像16461这样“对称”的数,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样. 解法: 1 public boolean isPalindromic(int number){ 2 if(number<10){ 3 return true; 4 } 5 ArrayList<Integer> arry = new ArrayList<Integer>(); 6 do{ 7 arry.add(number%10);

LeetCode刷题-009回文数

判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数 示例 1:输入: 121输出: true 示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 . 从右向左读, 为 121- .因此它不是一个回文数. 示例 3:输入: 10输出: false解释: 从右向左读, 为 01 .因此它不是一个回文数. 进阶:不将整数转为字符串来解决这个问题 1 class Solution { 2 public: 3 bool isPalindrom

C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数

各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2. 由于 2 是一位数,所以返回 2. 进阶:你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗? 题目地址 https://leetcode-cn.com/problems/add-digits/ 代码模板 public class Solution { public int AddDigits

每周一道算法题001:回文数

题目: 找出大于10的最小的2进制,8进制,10进制都是回文数的最小的数.回文数指的是正读和反读都是一样的数,例如:33,10001,123454321... 思路: 先转换进制,然后统一处理成字符串进行比较 解答: PHP function execute(){ $x = 11; while (1) { if ($x == strrev($x) && decbin($x) == strrev(decbin($x)) && decoct($x) == strrev(deco

【LeetCode-面试算法经典-Java实现】【009-Palindrome Number(回文数)】

[009-Palindrome Number(回文数)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 Determine whether an integer is a palindrome. Do this without extra space. 题目大意 判断一个数字是否是回访字数,不要使用额外的空间. 解题思路 为了不使用额外的空间,参考了其它的解决,那些解法看起来在isPalindrome方法中没有使用额外参数,但是却使用了方法调用,这个比一个整数消耗的

空间复杂度为O(1)的回文数判定算法

空间复杂度为O(1)的回文数判定算法 一.题设 实现空间复杂度为O(1)的回文数判定,输入为整型常数,要求输出判断是否为回文数. 要求格式如下: public boolean isPalindrome(int x) { //Your judge code } 二.概念 回文数(Palindrome)的定义:设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=1234321,则称n为一回文数:但若n=1234567,则n不是回文数. 特点: 1.负数.

回文数系列题目(经典算法)

回文数 时间限制:1000 ms  |  内存限制:65535 KB 难度:0 描述 请寻找并输出1至1000000之间的数m,它满足m.m^2和m^3均为回文数.回文数大家都知道吧,就是各位数字左右对称的整数,例如121.676.123321等.满足上述条件的数如m=11,m^2=121,m^3=1331皆为回文数. 输入 没有输入 输出 输出1至1000000之间满足要求的全部回文数,每两个数之间用空格隔开,每行输出五个数 解析:这道题直接模拟就好了,算是回文数中最简单的题了,直接写个判断回

C++基础算法之 回文数

// 常见算法.cpp : 定义控制台应用程序的入口点. //回文 #include "stdafx.h" #include <iostream> using namespace std; void reverse_num(int& n) { int rem = 0;//用于表示余数 int reverse = 0;//反转后的数字 int temp = 0; temp = n; while (temp !=0) { rem = temp%10; reverse =