【C语言每日练习】——3.回文数、特殊回文数(三种方法详解)
✅回文数
问题描述
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
按从小到大的顺序输出满足条件的四位十进制数。
分析
从左读和从右读一样,暴力法就是分离各个位数使得个位数=千位数;十位数=百位数
方法一
#include <stdio.h>
int main() {int i=1000;for(; i<10000; i++) {if(i%10 != i /1000)continue;if(i/10%10 != i/100%10)continue;printf("%d\n",i);}return 0;
}
方法二
#include <stdio.h>
int main(){int i,a,b,c,d;for(i=1000;i<10000;i++){a=i/1000;b=i/100%10;c=i%100/10;d=i%10;if(i==d*1000+c*100+b*10+a){printf("%d\n",i);}}return 0;
}
方法一和方法二均是分离各个位数,而方法三是利用逆向思维,用分离的数字使之满足条件,组后在整合输出
方法三
#include<stdio.h>
int main()
{int i,j;for(i=1;i<=9;i++){for(j=0;j<=9;j++){printf("%d%d%d%d\n",i,j,j,i);}}return 0;
}
✅特殊回文数
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。
方法一(暴力解法):
我们可以将五位数和六位数分开解决。既然是暴力解法,那就直接将五位数/六位数的每位数分离,要使它从左读和从右读是一样的,对于五位数来说,就是让它的个位数=万位数、十位数=千位数。最后只要根据题目,列出条件即可。
解题思路:
1. 第一个循环,将位数分离,条件判断,输出符合条件的五位数
2.第二个循环,利用上述方法。
代码实现:
#include <stdio.h>
int main(){int i,n;int a,b,c,d,e,f;scanf("%d",&n);for(i=10000;i<100000;i++){ //五位数 a=i%10; //分离个位数 b=i%100/10; //分离十位数c=i%1000/100;//分离百位数d=i/1000%10;//分离千位数e=i/10000;//分离万位数if(a+b+c+d+e==n&&a==e&&b==d){printf("%d\n",i);} }for(i=100000;i<=999999;i++){a=i%10; //分离个位数 b=i%100/10; //分离十位数c=i%1000/100;//分离百位数d=i/1000%10;//分离千位数e=i/10000%10;//分离万位数f=i/100000;if(a+b+c+d+e+f==n&&a==f&&b==e&&c==d){printf("%d\n",i);}}return 0;
}
方法二
在方法一的基础上,依然是让五位数和六位数分开来分析,而与上述方法不同的是将每位数都依次循环来解决。(参照后面的源码,可以更好的理解哦~
【C语言每日练习】——3.回文数、特殊回文数(三种方法详解)相关推荐
- C语言求最大公约数三种方法详解
C语言求最大公约数三种方法详解 题目要求 常用写法(穷举法) 辗转相减法 辗转相除法 main函数 整体代码 题目要求 运行最大公约数的常用算法,并进行程序的调式与测试. 常用写法(穷举法) 从两个数 ...
- python字符串format方法参数解释,一文秒懂!Python字符串格式化之format方法详解
一文秒懂!Python字符串格式化之format方法详解 一文秒懂!Python字符串格式化之format方法详解 format是字符串内嵌的一个方法,用于格式化字符串.以大括号{}来标明被替换的字符 ...
- C语言实现不带头结点的单链表逆置的三种方法
C语言实现不带头结点的单链表逆置的三种方法 直接循环 头插法 递归法 END! 直接循环 图片解释 ListNode* ReverseList1(ListNode *head) {if(head == ...
- 两数求最大公约数的三种方法的C语言实现
任意输入两个数,求出二者的最大公约数,以C语言实现.以下是三种方法以及对应思路: <1>辗转相除法. 定义两个变量存放两个数(a,b),先以冒泡法将较大数存放在在b内,较小数存放于a. 相 ...
- 一文秒懂!Python字符串格式化之format方法详解
format是字符串内嵌的一个方法,用于格式化字符串.以大括号{}来标明被替换的字符串,一定程度上与%目的一致.但在某些方面更加的方便 1.基本用法 1.按照{}的顺序依次匹配括号中的值 s = &q ...
- python判断回文数字,Python判断回文数的三种方法实例
需求: 从控制台输入一个五位数,如果是回文数就打印"是回文数",否则打印"不是回文数",例如:11111 12321 12221 "回文"是 ...
- 判断回文数的三种方法
法一:主要用于判断数字回文,不能用于字符串回文. #include<stdio.h> void fun(long num) {long r=0,temp=num;//记录判断数值while ...
- c语言求圆周率 . 4,C语言求圆周率π(三种方法)(4页)-原创力文档
C语言求圆周率π(三种方法) 题目1) 利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止.题目2) 根据公式②,用前100项之积计算π的值.题目1)提供了一种解法,题目2)提供了两种 ...
- c语言编程非线性方程求解,c语言计算机编程三种方法求解非线性方程
c语言计算机编程三种方法求解非线性方程 本 科 专 业 学 年 论 文题 目:非线性方程求解比较姓 名: 何 娟 专 业: 计算机科学技术系 班 级: 08 级本科(2)班 指 导 老 师: 刘 晓 ...
- elasticsearch系列三:索引详解(分词器、文档管理、路由详解(集群))
目录 一.分词器 1. 认识分词器 1.1 Analyzer 分析器 1.2 如何测试分词器 2. 内建的字符过滤器(character filter) 2.1 HTML过滤字符过滤器(HTML S ...
最新文章
- mvn项目Quartz简单上手
- Python 爬虫十六式 - 第六式:JQuery的假兄弟-pyquery
- 镀铬亮条怎么修复_老车修复:翻新小改一辆破烂不堪的经典MINI,完美大变样...
- PHP array_filter()函数与示例
- C语言自学之路一(初识C语言)
- html打包成apk wex5,WeX5打包部署学习
- 计算机网络中协议分层的目的是什么意思,网络协议分层的作用是什么
- Spring Cloud Gateway — 网关基本功能API暴露
- 解构给默认值_函数的对象参数的解构和默认值
- 印象笔记 for Mac(Evernote mac)
- 小程序开发特辑—小程序申请及开发环境搭建
- 专访强生医疗裴兴:后流量思维时代,医美行业迎来数字化大变局
- 【camera】【ISP】Lens Shading Correction镜头阴影校正
- 比尔及梅琳达·盖茨基金会宣布追加最高 1 亿美元捐款,支持抗击新型冠状病毒疫情!...
- 我发表的论文,怎么跑到百度文库中了
- openstack九大模块
- php变量值传给html,如何将PHP变量传递给新的HTML页面?
- 【Edraw Max教程】如何快速创建精美的组织结构图
- Python软件基金会
- nvarchar 和varchar 在len下一致,datalength下nvarchar翻倍
热门文章
- 大数据、数据分析和数据挖掘的区别是什么
- 2020-10-18 硬件电路设计之三极管放大电路【B站】
- linux安装网易云
- flash读取程序 msp430_MSP430 flash的操作
- 计算机专业的学生也太太太太太惨了吧?
- js日历控件html,第11款插件:jquery.jCal.js显示日历插件
- 【Python】Python 操作 elasticsearch 版本兼容问题导致报错的解决方案
- 计算机控制技术第二版答案于微波,微波技术习题答案 2.doc
- Linux usbkey自动登陆,Usbkey怎么用?|3分钟让您了解Usbkey使用方法
- 平均数 中位数 四分位数 方差 标准差