| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 934 人关注过本帖
标题:判断某正整数是一个回数的算法不知道怎么了
只看楼主 加入收藏
jin7jinjin
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-3-26
收藏
 问题点数:0 回复次数:7 
判断某正整数是一个回数的算法不知道怎么了
我是有点关于VB的一些问题想问你,因为才刚刚学写代码,所以有很多错误,下面有三题:
1..(如121 25852 555 256652)
Private Sub Command1_Click()
Dim n As Integer, ch As String, i As Integer
ch = CStr(n)
i = 1
If i <= Len(ch) / 2 Then
b = Mid(ch, i, 1)
l = Mid(ch, Len(ch) - i + 1, 1)
i = i + 1
ElseIf b = l Then
Print "yes"
Else
Print "no"
End If
End Sub
这个我知道错了,但不知道什么地方不对劲.
2.编写程序,求出100之内的所有勾股数.(a^2+b^2=c^2 (a<>b))
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
a = Int(Rnd * 100) + 1
b = Int(Rnd * 100) + 1
If c ^ 2 = a ^ 2 + b ^ 2 And a <> b Then
Print c;
End If
End Sub
这个就是连反应都没有.
3.设计一个用二分法求方程x^3-x^4+4*x^2-1=0在区间[0,1]上的一个实根.
Option Explicit
Private Sub form_Click()
Dim a As Single, b As Single, c As Single, Esp As Single
Esp = InputBox("输入允许的误差值", "二分法")
a = 0#
b = 1#
Do
If (a ^ 3 - a ^ 4 + 4 * a ^ 2 - 1) * (b ^ 3 - b ^ 4 + 4 * b ^ 2 - 1) < 0 Then
c = (a + b) / 2
If (a ^ 3 - a ^ 4 + 4 * a ^ 2 - 1) * (c ^ 3 - c ^ 4 + 4 * c ^ 2 - 1) > 0 Then
a = c
Else
b = c
End If
End If
Loop Until Abs(b - c) <= Esp
Print c
End Sub
这个我就是什么都不知道了,每一次运行下来都是0.5
搜索更多相关主题的帖子: 整数 算法 判断 
2006-03-26 11:53
爱人
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-10-11
收藏
得分:0 
第一个,if else 语句有问题
2。a b都是随机产生的,你随便单击下,就能“勾股”?
3。我不知道你的算法有没问题
Loop Until Abs(b - c) <= Esp
这个esp是什么?还有这个结果肯定是只有一个结果的
自己在好好想想

2006-03-26 13:43
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
1.我是输出1000到9999里的所以回文数...
Private Sub Command1_Click()
Dim i As Integer
Dim a As Integer, b As Integer, c As Integer, d As Integer
For i = 1000 To 9999
a = Left$(i, 1)
b = Mid$(i, 2, 1)
c = Mid$(i, 3, 1)
d = Right$(i, 1)
If a = d And b = c Then Print i
Next
End Sub

我的msn: myfend@
2006-03-26 15:40
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
2
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
For a = 3 To 100
For b = 4 To 100
For c = 5 To 100
If a * a + b * b = c * c Then Print a, b, c
Next
Next
Next
End Sub

我的msn: myfend@
2006-03-26 15:42
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
3方程我不懂..

我的msn: myfend@
2006-03-26 15:43
kalrt
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-3-26
收藏
得分:0 
1:输出回文字的范围可以任意
Private Sub Command1_Click()
Dim i As long, j As Integer
Dim flag1 As Boolean
Dim a As String, b As String, c As String
For i = 1000 To 35000
flag1 = True
a = Trim(Str(i))
For j = 1 To Len(a) / 2
If Mid(a, j, 1) <> Mid(a, Len(a) - j + 1, 1) Then
flag1 = False
Exit For
End If
Next
If flag1 Then Print a
Next
End Sub

2006-03-26 22:09
kalrt
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-3-26
收藏
得分:0 
2:在purana的基础上修改 滤掉重复的输出
Private Sub Command2_Click()
Dim a As Integer, b As Integer, c As Integer
For a = 3 To 100
For b = 4 To 100
For c = 5 To 100
If a * a + b * b = c * c Then
If a <= b And b < c Then Print a, b, c
End If
Next
Next
Next
End Sub

2006-03-26 22:13
kalrt
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-3-26
收藏
得分:0 
3:
Private Sub form_Click()
Dim a As Single, b As Single, c As Single, Esp As Single, d As Single
Esp = InputBox("输入允许的误差值", "二分法")
a = 0#
b = 1#
Do
If (a ^ 3 - a ^ 4 + 4 * a ^ 2 - 1) * (b ^ 3 - b ^ 4 + 4 * b ^ 2 - 1) < 0 Then
c = (a + b) / 2
If (a ^ 3 - a ^ 4 + 4 * a ^ 2 - 1) * (c ^ 3 - c ^ 4 + 4 * c ^ 2 - 1) > 0 Then
a = c
Else
b = c
End If
End If
Loop Until Abs(b - a) <= Esp
d = Int(c / Esp + 0.5) * Esp '控制输出数据的精确度
Print d
End Sub

2006-03-26 23:04
快速回复:判断某正整数是一个回数的算法不知道怎么了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016481 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved