打印回文数字&字母

1、指定位数的数字型回文,第一种方法是通过判断每一位数来确定是否是回文,

这种方法不够灵活,如果位数变了,代码就要修改,如下:

"""
打印100到999之间的回文数ABA
"""

#从100开始循环,循环内判断是否符合要求,符合即输出num1 = 100i = 1while num1 <= 999:    #获得百位数值    b = num1 // 100    #获得个位数值    g = num1 % 10    #判断百位和个位是否相同    if b == g:        print("%d\t" % num1,end="")        if i % 10 == 0:#每10位换行输出            print("\n")        i += 1    num1 += 1

输出(部分截图):

2、第二种方法是将数字转为字符串,对单个字符比较是否相同,少了一些算法,多了一点灵活性,代码如下:

"""打印回文数通用增强版"""

def num_aba(n):    count1 = 0#控制输出格式,不参与算法    for num0 in range(1,n):        i = 0#定义循环变量        flag = True#定义逻辑运算变量        while i < len(str(num0))//2:#对每一个数字判断是否符合要求            if str(num0)[i] == str(num0)[-i-1]:                flag = flag and True#符合返回True            else:                flag = False#不符合返回False                break            i += 1        if flag == True:#判断结果如果是True,则是回文数,打印            print(num0,end="\t")            count1 += 1#控制变量+1            if count1 % 10 == 0:#控制格式输出,每10个数字一行                print("\n")

num_aba(100000)

输出(部分截图):

3、打印字母回文

我用的方法是把字符转换为ASCII码进行运算输出

def alp_ABA(N):    for i in range(ord("A"),ord("%s" % N)+1):        for j in range(ord("A"),i + 1):            print(chr(j),end="")        for k in range(j-1,ord("A")-1,-1):            print(chr(k),end="")        print()

alp_ABA("U")

输出:



原文地址:https://www.cnblogs.com/sunmingduo/p/9903461.html

时间: 2024-11-09 03:00:33

打印回文数字&字母的相关文章

Java 简单算法--打印回文数字

package cn.magicdu.algorithm; public class CircleNumber { public static void main(String[] args) { for(int i=10;i<10000;i++){ if(isCircleNumber(i)){ System.out.println(i); } } } /** * 判断是否是回文数字 * @param num * @return */ private static boolean isCircl

判断一个数字是否是回文数字,如果是则打印出100以内的回文数字,若不是只给出提示信息。

回文数字指的是什么呢?什么是回文数字呢? 回文数字的特征是:一组数字,从左读和从右读都是一样的,比如:123.123321.12345654321 public class HuiWenTest{    public static void main(String[] args)    {        Scanner sc = new Scanner(System.in); try        {            System.out.println("请输入你要判断的数字: &quo

条件结构的实例-水仙花数、猜拳游戏、回文数字

1.判断输入的数是否为水仙花数 int num,ge,shi,bai,he;  //声明变量 printf("请输入三位数");  //由用户输入一个三位数 scanf("%d",&num);   //将用户输入的数字保存给num //用户输入的数=个位的三次方+ 十位数的三次方+ 百位数的三次方 //1.从num获取个位 ge=num%10; //2.从num获取十位 shi=num/10%10; //3.从num获取百位 bai=num/100; he=

LeetCode 9 Palindrome Number(回文数字判断)

Long Time No See ! 题目链接https://leetcode.com/problems/palindrome-number/?tab=Description 首先确定该数字的位数.按照已知数字x对10进行多次求余运算,可以得到数字位数. 具体思路: 1.每次取出该数字的最高位和最低位进行比较. 2.如果不相等则直接返回FALSE, 3.如果相等修改x的值(去掉最高位也同时去掉最低位)其中去掉最高位可以通过求模运算,去掉最低位可以采用除以10 4.进行循环直到x的值不大于0为止

1503140110-蓝桥杯-历届试题 回文数字

历届试题 回文数字 时间限制:1.0s   内存限制:256.0MB 问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的.这样的数字叫做:回文数字. 本题要求你找到一些5位或6位的十进制数字.满足如下要求: 该数字的各个数位之和等于输入的整数. 输入格式 一个正整数 n (10<n<100), 表示要求满足的数位和. 输出格式 若干行,每行包含一个满足要求的5位或6位整数. 数字按从小到大的顺序排列. 如果没有满足条件的,输出:-1 样例

回文数字判断

/** * 回文数字判断 * * @param num * @since 0.0.1 */ public void huiwen(String num){ Integer temp = (num.length())/2 ; System.out.println(temp); boolean flag = true; for (int i = 0; i < num.length(); i++) { if (temp > 0) { if (i >= temp) { break; } } Sy

算法笔记_181:历届试题 回文数字(Java)

目录 1 问题描述 2 解决方案   1 问题描述 问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的.这样的数字叫做:回文数字. 本题要求你找到一些5位或6位的十进制数字.满足如下要求: 该数字的各个数位之和等于输入的整数. 输入格式 一个正整数 n (10<n<100), 表示要求满足的数位和. 输出格式 若干行,每行包含一个满足要求的5位或6位整数. 数字按从小到大的顺序排列. 如果没有满足条件的,输出:-1 样例输入 44 样例输

【蓝桥杯】PREV-21 回文数字

题目链接:http://lx.lanqiao.org/problem.page?gpid=T113 历届试题 回文数字 时间限制:1.0s   内存限制:256.0MB 问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的.这样的数字叫做:回文数字. 本题要求你找到一些5位或6位的十进制数字.满足如下要求: 该数字的各个数位之和等于输入的整数. 输入格式 一个正整数 n (10<n<100), 表示要求满足的数位和. 输出格式 若干行,每行

Palindrome-Number(判断回文数字)

判断一个数是否为回文数字,如1,2,3,121,1001,999都是回文数字,10,9898就不是回文数字. 解法:判断对称中心两端数字是否相同. 代码如下: bool isPalindrome(int x) { if (x<0 || (x != 0 && x % 10 == 0)) return false; int sum = 0; while (x>sum) { sum = sum * 10 + x % 10; x = x / 10; } return (x == sum