回文数的判断(三种方法)
来源:互联网 发布:最佳网络投资平台 编辑:程序博客网 时间:2024/05/28 20:19
最近做了一点关于回文数的总结。
首先先写一篇关于回文数判断的几种方法。
回文数的概念:即是给定一个数,这个数顺读和逆读都是一样的。例如:121,1221是回文数,123,1231不是回文数。
方法一:
试用情境,处理小数字。使用数学方法。输入的回文数x的范围为x<10^9,int存储,或者x<10^18,long long存储的数,数字的范围不大。这里写的是int存储情况。
#include<stdio.h>int main(){ int x,newed,t,n; while(scanf("%d",&x)!=EOF) { newed=0; n=x; do { newed=newed*10+x%10; x/=10; }while(x>0); if(n==newed) printf("Yes\n"); else printf("No\n"); } return 0;}
方法二:
试用情景,处理大数字。使用字符串处理方式。因为回文数关于中心对称,只要比较对称的数即可。
#include<stdio.h>#include<string.h>int main(){ int i,length,flag=0; char a[100]; gets(a); length=strlen(a); for(i=0;i<=length/2;i++) { if(a[i]==a[length-1]) flag=1; else { flag=0; break; } length--; } if(flag==1) printf("yes"); else printf("no"); return 0;}
方法三:
试用情景,处理大数字。使用栈的思想。和字符串处理方式类似,这里是比较出栈元素与串中字符,如不等,则是no。
#include<stdio.h>#include<string.h>#define StackSize 100typedef struct{ char data[StackSize];//开栈为100; int top=0;}SeqStack;int main(){ SeqStack s; char str[100]; scanf("%s",str); int len=strlen(str); int i,flag=1; for(i=0;i<len/2;i++)//将一半字符入栈 s.data[s.top++]=str[i]; if(len%2) i++; //奇数时自动跳过中间的数字,如121,跳过2,比较1 while(s.top)//相当于EmptyStack(&s),判断是否栈空. {// 每弹出一个字符与相应字符比较 char temp=s.data[--s.top]; if(temp!=str[i]){ flag=0; }else{ i++; } } if(flag==0){ printf("no\n"); }else{ printf("yes\n"); } return 0;}
0 0
- 回文数的判断(三种方法)
- 回文数的判断方法之一
- 回文/回文数的判断
- 回文数的判断
- 回文数的判断
- 回文数的判断
- 回文数的判断
- 回文数的判断
- 回文数的判断
- 回文数的判断
- 回文数的判断
- 回文数的判断
- 采用不同的方法实现回文数的判断
- 1282HDU 回文数猜想(很水的题目)CSDN+新回文数判断方法!!
- 回文数与回文字符串的判断
- 简单回文数的判断
- 回文数的判断-Python
- 回文数的判断(while())
- powershell使用心得
- Spring Boot (一)
- 一站式学习Wireshark(二):应用Wireshark观察基本网络协议
- solr6.2从环境部署到与mysql整合到中文分词器到solrJ的使用
- js 字符串的一些常用方法
- 回文数的判断(三种方法)
- Regular expression examples in javascript
- 接口和实现的命名方式
- 很多网站的内容储存用多个域名的好处
- Linux下JavaEE开发环境搭建---JDK+Eclipse+Tomcat
- jvm 空间分配总结
- JSP生命周期
- bzoj1916[Usaco2010 Open]冲浪
- ubuntu 下 访问html网页正常,访问php页面空白页解决办法