✅回文数

问题描述

  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.回文数、特殊回文数(三种方法详解)相关推荐

  1. C语言求最大公约数三种方法详解

    C语言求最大公约数三种方法详解 题目要求 常用写法(穷举法) 辗转相减法 辗转相除法 main函数 整体代码 题目要求 运行最大公约数的常用算法,并进行程序的调式与测试. 常用写法(穷举法) 从两个数 ...

  2. python字符串format方法参数解释,一文秒懂!Python字符串格式化之format方法详解

    一文秒懂!Python字符串格式化之format方法详解 一文秒懂!Python字符串格式化之format方法详解 format是字符串内嵌的一个方法,用于格式化字符串.以大括号{}来标明被替换的字符 ...

  3. C语言实现不带头结点的单链表逆置的三种方法

    C语言实现不带头结点的单链表逆置的三种方法 直接循环 头插法 递归法 END! 直接循环 图片解释 ListNode* ReverseList1(ListNode *head) {if(head == ...

  4. 两数求最大公约数的三种方法的C语言实现

    任意输入两个数,求出二者的最大公约数,以C语言实现.以下是三种方法以及对应思路: <1>辗转相除法. 定义两个变量存放两个数(a,b),先以冒泡法将较大数存放在在b内,较小数存放于a. 相 ...

  5. 一文秒懂!Python字符串格式化之format方法详解

    format是字符串内嵌的一个方法,用于格式化字符串.以大括号{}来标明被替换的字符串,一定程度上与%目的一致.但在某些方面更加的方便 1.基本用法 1.按照{}的顺序依次匹配括号中的值 s = &q ...

  6. python判断回文数字,Python判断回文数的三种方法实例

    需求: 从控制台输入一个五位数,如果是回文数就打印"是回文数",否则打印"不是回文数",例如:11111 12321 12221 "回文"是 ...

  7. 判断回文数的三种方法

    法一:主要用于判断数字回文,不能用于字符串回文. #include<stdio.h> void fun(long num) {long r=0,temp=num;//记录判断数值while ...

  8. c语言求圆周率 . 4,C语言求圆周率π(三种方法)(4页)-原创力文档

    C语言求圆周率π(三种方法) 题目1) 利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止.题目2) 根据公式②,用前100项之积计算π的值.题目1)提供了一种解法,题目2)提供了两种 ...

  9. c语言编程非线性方程求解,c语言计算机编程三种方法求解非线性方程

    c语言计算机编程三种方法求解非线性方程 本 科 专 业 学 年 论 文题 目:非线性方程求解比较姓 名: 何 娟 专 业: 计算机科学技术系 班 级: 08 级本科(2)班 指 导 老 师: 刘 晓 ...

  10. elasticsearch系列三:索引详解(分词器、文档管理、路由详解(集群))

    目录 一.分词器​ 1. 认识分词器 1.1 Analyzer 分析器 1.2 如何测试分词器 2. 内建的字符过滤器(character filter) 2.1 HTML过滤字符过滤器(HTML S ...

最新文章

  1. mvn项目Quartz简单上手
  2. Python 爬虫十六式 - 第六式:JQuery的假兄弟-pyquery
  3. 镀铬亮条怎么修复_老车修复:翻新小改一辆破烂不堪的经典MINI,完美大变样...
  4. PHP array_filter()函数与示例
  5. C语言自学之路一(初识C语言)
  6. html打包成apk wex5,WeX5打包部署学习
  7. 计算机网络中协议分层的目的是什么意思,网络协议分层的作用是什么
  8. Spring Cloud Gateway — 网关基本功能API暴露
  9. 解构给默认值_函数的对象参数的解构和默认值
  10. 印象笔记 for Mac(Evernote mac)
  11. 小程序开发特辑—小程序申请及开发环境搭建
  12. 专访强生医疗裴兴:后流量思维时代,医美行业迎来数字化大变局
  13. 【camera】【ISP】Lens Shading Correction镜头阴影校正
  14. 比尔及梅琳达·盖茨基金会宣布追加最高 1 亿美元捐款,支持抗击新型冠状病毒疫情!...
  15. 我发表的论文,怎么跑到百度文库中了
  16. openstack九大模块
  17. php变量值传给html,如何将PHP变量传递给新的HTML页面?
  18. 【Edraw Max教程】如何快速创建精美的组织结构图
  19. Python软件基金会
  20. nvarchar 和varchar 在len下一致,datalength下nvarchar翻倍

热门文章

  1. 大数据、数据分析和数据挖掘的区别是什么
  2. 2020-10-18 硬件电路设计之三极管放大电路【B站】
  3. linux安装网易云
  4. flash读取程序 msp430_MSP430 flash的操作
  5. 计算机专业的学生也太太太太太惨了吧?
  6. js日历控件html,第11款插件:jquery.jCal.js显示日历插件
  7. 【Python】Python 操作 elasticsearch 版本兼容问题导致报错的解决方案
  8. 计算机控制技术第二版答案于微波,微波技术习题答案 2.doc
  9. Linux usbkey自动登陆,Usbkey怎么用?|3分钟让您了解Usbkey使用方法
  10. 平均数 中位数 四分位数 方差 标准差