作业帮 > 字数作文 > 教育资讯

判断回文数算法

来源:学生作业帮助网 编辑:作业帮 时间:2024/09/25 05:31:57 字数作文
判断回文数算法字数作文

篇一:数据结构与算法问题分析及源代码之求回文数判断

求字符串是否为回文数

1 题目

编写一个程序,输入一个字符串,判断该字符串是否“回文”

2 目标

熟悉编译环境,练习将数据结构知识融入程序中,用结构的眼光看数据。

3 设计思想及算法描述

从键盘输入一个数,判断其是否为回文数,并显示。用数组存储数字符串,利用递归算法从两头开始逐个比较,若出现不等,退出并输出“不是回文”,否则输出“是回文”。 4 程序流程图

5 源程序

#include "stdafx.h"

#include "stdio.h"

#include

int test(char *s,int bg,int ed) {

if(s[bg]!=s[ed])return 0;

else if(ed-bg>2)test(s,bg+1,ed-1); return 1;

}

int main(int argc, int* argv[]) {

char s[50];

gets(s);

if(test(s,0,strlen(s)-1)) cout<<"是回文"<

}

篇二:回文数判断程序

回文数判断程序

说明:此程序可以对输入的字符串是否属于对称字符串进行有效的判断,因此只要是关于对称字符串的判断此程序都可以胜任,用于回文数判断只是该程序的一个子功能而已。

1,UI如下

由文本框TextBox1和按钮Button1组成

2,用到的函数(可直接复制粘帖,然后在自己的后台代码中调用)

'判断回文数

Public Function isHWS(ByVal s As String) As String

Dim s1 As String = ""

Dim s2 As String = ""

Dim i As Integer = 0

Dim p As Integer = 0

If isJiOu(s.Length) = 1 Then

p = (s.Length + 1) / 2

s1 = Mid(s, 1, p)

Else

p = s.Length / 2 + 1

s1 = Mid(s, 1, p - 1)

End If

For i = s.Length To p Step -1

s2 = s2 + Mid(s, i, 1)

Next

If s1 = s2 Then

Return "是回文数"

Else

Return "不是回文数"

End If

End Function

'判断一个整数的奇偶

Public Function isJiOu(ByVal i As Integer) As Integer

If i Mod 2 = 0 Then

Return 2

Else

Return 1

End If

End Function

3,后台代码如下

'判断按钮的Click事件

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click

Select Case TextBox1.Text.Length

Case 0

Button1.Content = "请输入"

Case 1

Button1.Content = "是回文数"

Case Else

Button1.Content = isHWS(TextBox1.Text)

End Select

End Sub

'判断按钮失去焦点事件

Private Sub Button1_LostFocus(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.LostFocus

Button1.Content = "判断"

End Sub

4,运行效果

篇三:判断是否是回文数

【实验报告】撰写

实验编号:

实验学期:

姓名:

任课老师:

课程名称:

课程编号:

学时:

班级:

学号:

实验时间:

实验题目:

实验

目的和要求

实验内容与分析设计

实验步骤与调试过程

实验结果

(来自:WWw.SmhaiDa.com 海达范文网:判断回文数算法)

疑难小结

主要算法和程序清单

相关资料

请上传20M以内的rar或zip文件 上

传:

篇四:java判断一个数位数及是否是回文数

/*

* 4.回文数。

编写一个Java应用程序。用户从键盘输入一个1—9999之间的数,程序将判断这个数是 回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是

几位数,并判断这个数是否是回文数。 回文数。

*/

public class JudgeHuiWen {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in); for(int i=0;i<10000;i++){

System.out.print("请输入一个1-9999之间的数:"); int a=sc.nextInt(); if(a<1||a>9999){ } else{

if(a/1000!=0){

System.out.print("这个数是四位数,");

int m=a/1000;int j=a%1000/100; int k=a%1000%100/10;int if((1000*n+100*k+10*j+m)==a){ }

System.out.print("这个数是三位数,");

int m=a/100;int j=a%100/10;int k=a%100%10; if((100*k+10*j+m)==a){ }

System.out.print("这个数是两位数,"); int m=a/10;int j=a%10; if((10*j+m)==a){

System.out.println("而且是个回文数"); }else{

System.out.println("而且是个回文数"); System.out.println("但是不是回文数"); }else{

System.out.println("而且是个回文数"); System.out.println("但是不是回文数"); }else{

System.out.println("你输入的数有误,请重新输入!");

n=a%1000%100%10;

}else if(a/100!=0){

}else if(a/10!=0){

}}

}}

}

}

System.out.println("但是不是回文数");

}else{

System.out.print("这个数是一位数,"); System.out.println("而且是个回文数");

这个判断一个数是否是回文数的通用方法,有点繁琐了,跪求回文数的简单算法!!联系我QQ291757635,小弟跪谢了!

篇五:算法(各种数的判断)

算法:同构数、素数、回文数(对称数)、奇数、偶数、最小公倍数、最大公约数

一、同构数

1)概念:如果一个数出现在它的平方数的右端,则这个数我们称作是“同构数” 。如:225=25 25=625

2)求解方法:字符串截取。

算法如下: Dim x%,y%

X=abs(inputbox(“请输入一个正整数:”))

Y=x*x ‘把X的平方数存入变量Y中

N=len(str(x))-1

If x=val(right(str(y),n) then

print x & “是同构数”

else

print x & “不是同构数”

end if

能力训练:

案例1:设计程序实现:找出1~2000范围内的所有同构数

案例2:设计程序实现:利用随机函数产生200个1000以内的正整数,并统其中有几个是同构数。

二、素数(即质数)

概念:只能被1和它本身整除的数。也就是说,除了1和它本身,再不能被任何数整除的数,就是素数。 Dim x as integer

X=abs(inputbox(“请输入一个正整数:”))

F=true ‘假设X是素数

For k=2 to x-1

If x mod k=0 then

F=false ‘X不是素数

Exit for ‘退出循环

Next k

If f=true then print x & “是素数” else print x & “不是素数”

能力训练:

1、 输出100以内的所有素数,且要求按每行10个数输出。

2、 利用随机函数产生50个[100,500]之间的正整数放入list1中,找出其中的素数放入到list2

中,并统计素数的个数在label1中显示出来。

三、回文与对称数

概念:顺读与倒读都一样的字符串,我们称之为“回文”;顺读与倒读都一样的数,我们称之为“对称数”。如:12321 就是一个对称数,“上海自来水来自海上” 是一个回文。 基本算法:

X$=”上海自来水来自海上”

N=len(x$)

i=1:j=n

f=true ‘假设f=true表示X$是回文件

do until r>=j

R$=mid(x$,I,1) : L$=mid(x$,j,1)

If R$<>L$ then f=false :exit do

I=i+1 : j=j-1

Loop

If f then print X$ & “是回文件” else print X$ & “不是回文件”

能力训练:

设计程序实现:判断一个正整数是否为对称数?

四、求两个正整数的最大公约数

1)概念:两个数的公共约数中,最大的一个约数即为两数的最大公约数。

2)求解方法:辗转相除法。即用两数中最大的一个数当作被除数,小的一个数当作除数,两数除求得余数R,如果余数R=0,那么此时的除数即为两数的最大公约数;如果余数R不为0,则把除数当作被除数,余数当作除数,重新求得两数相除的余数R,只要余数R不为0,一直这样辗转相除下去,直到余数R=0为止。

算法如下:

Dim x%,y%

X=abs(inputbox(“请输入一个正整数:”))

y=abs(inputbox(“请输入一个正整数:”))

M=x*y ‘把原始两个正整数的乘积保存下来

if x

R=x mod y

Do until R=0

X=y ‘把除数Y当作被除数

Y=r ‘把余数R当作除数

R=x mod y ‘求得两数相除的余数R

loop

print “最大公约数=” & y

print “最小公倍数=” & M/y

rem最小公倍数=两个正整数的乘积/最大公约数

五、阿姆斯特朗数(自恋数)

概念:判断一个正整数是否为阿姆斯特朗数的标准是:如果一个数每位数字的立方之和等于这个数本身,即该数称为阿姆斯特朗数。如:153=1*1*1+5*5*5+3*3*3

Dim x as integer

X=abs(inputbox(“请输入一个正整数:”))

S=0 ‘S用来保存各位数字立方之和

Do until x=0

R=x mod 10 ‘把最低位数字分离出来放到R中

S=S+R*R*R

X=X\10 ‘把X缩小10倍后取整

Loop

If S=X then print x & “是自恋数” else print x & “不是自恋数”

六、水仙花数(求解方法同自恋数,此处略)

概念:水仙花数是一个三位正整数。如果这个三位正整数各位数字的立方之和等于这个三位数本身,则这个三位数我们称之为“水仙花数”。

巩固练习:

1、设计程序实现:随机产生两个100以内的正整数,然后输出两数的最大公约数和最小公倍数。

2、设计程序实现:找出[1,2000]之内的所有的自恋数。

3、设计程序实现:输出所有的水仙花数。

4、设计程序实现:利用随机函数随机产生300个10000以内的正整数,并统计共出现了多少个自恋数。

字数作文