Foxtable(狐表)用户栏目专家坐堂 → 趣味2022


  共有5162人关注过本帖树形打印复制链接

主题:趣味2022

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
趣味2022  发帖心情 Post By:2022/1/7 14:22:00 [只看该作者]

  用11,12,...,19各一次,写一个表达式(可以出现加减乘除和括号,但不能拆开各数,如把19拆成1和9是不允许的),算出2022。
  能不能用代码把所有表达式逐行生成?这是我今天在群里看见吴教授出的题,他已经公布结果了,我现在要的不是结果,是用代码形式编写的方法,好复杂啊!我现在是学编程,感觉应该可以。但老鼠拉龟,无从下手,虚心请教老师。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/1/7 14:37:00 [只看该作者]

吴教授前年也发了一个趣味题,老师帮解出来了:
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=145711&skin=0
[此贴子已经被作者于2022/12/1 23:12:46编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/1/7 16:40:00 [只看该作者]

我大约写了一下,红色报错,意思删除已用的数值,请指正。
Dim zu As Integer
Dim ii As Integer
Dim Names1() As Integer = {11,12,13,14,15,16,17,18,19}
For i As Integer = 0 To Names1.Length -1
    Dim fh1() As String = {"+","-","*","/"}
    For c As Integer = 0 To fh1.Length -1
        zu = Names1(i) Or ("(" & Names1(i) & "'" & fh1(c) & "'")
        Names1 = Names1.RemoveAt(i)
        For i2 As Integer = 0 To Names1.Length -1
            zu = zu & Names1(i2) Or (Names1(i2) & ")'" & fh1(c) & "'")
        Next
    Next
If zu = 2022 Then
Dim dr As DataRow = DataTables("表A").AddNew()
dr = zu & Names1(i2) Or (Names1(i2) & ")'" & fh1(c) & "'")
Next
[此贴子已经被作者于2022/1/7 17:10:38编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111422 积分:567186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/7 17:14:00 [只看该作者]

数组没有RemoveAt这种用法

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/1/7 22:25:00 [只看该作者]

在字符串中统计指定字符出现个数怎统计?

 回到顶部
帅哥哟,离线,有人找我吗?
cjd
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:59 积分:712 威望:0 精华:0 注册:2011/7/6 17:00:00
  发帖心情 Post By:2022/1/8 0:33:00 [只看该作者]

Dim s As String ="ahabcadeahgahahaiaoaaa"
Dim u As Integer=0
For x As Integer=1 To 100
If s.lastindexof("a")>s.indexof("a")
s=s.Substring(0,s.lastindexof("a"))
u=u+1
End If
If s.lastindexof("a")=s.indexof("a") Then
Exit For 
End If

Next
output.show(u+1)

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/1/8 9:09:00 [只看该作者]

你这段代码我在命令窗口中执行一下,根本没反映。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/1/8 9:12:00 [只看该作者]

有了,谢谢。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/1/8 11:52:00 [只看该作者]

我的水平只能做到这样了,报错:
.NET Framework 版本:4.0.30319.18063
Foxtable 版本:2021.12.30.1
错误所在事件:窗口,窗口1,Button1,Click
详细错误信息:
Unable to cast object of type 'System.String[]' to type 'System.Collections.Generic.IEnumerable`1[System.Int32]'.
应该是红色标注代码问题,请教应怎么处理,另绿色标注代码能这样写吗?


Dim bds As Integer
Dim zu As String
Dim Names() As Integer = {11,12,13,14,15,16,17,18,19}
Dim s1 As New List(of Integer)
Dim s2 As New List(of Integer)
s1.AddRange(Names) '将数组中的元素全部加入到集合中
s2.AddRange(s1) '将集合s1中的元素全部加入到集合s2中
Dim fh() As String = {"+","-","*","/"}
Dim t1 As New List(of Integer)
Dim t2 As New List(of Integer)
t1.AddRange(fh) '将数组中的元素全部加入到集合中
t2.AddRange(t1) '将集合s1中的元素全部加入到集合s2中
For i As Integer = 0 To s2.count -1
    For c As Integer = 0 To t2.count -1
        zu = s2(i) & "'" & t2(c) & "'" And "(" & s2(i) & "'" & t2(c) & "'"   '同时有两种情况,可这样写吗?
    Next
    s2.RemoveAt(i)
    For i2 As Integer = 0 To s2.count - 1
        For c As Integer = 0 To t2.count -1
            If zu Like "(*" Then
                zu = zu & s2(i2) & ") '" & t2(c) & "'" Or zu & s2(i2) & "'" & t2(c) & "'"
            Else
                zu = zu & s2(i2) & "'" & t2(c) & "'" Or zu & "' (" & s2(i2) & "'" & t2(c)
            End If
        Next
        s2.RemoveAt(i2)
        For i3 As Integer = 0 To s2.count - 1
            For c As Integer = 0 To t2.count -1
                Dim u As Integer = 0
                Dim u1 As Integer = 0
                For x As Integer = 1 To 100
                    If zu.lastindexof("(")> zu.indexof("(")
                        zu = zu.Substring(0,zu.lastindexof("("))
                        u = u + 1
                    End If
                    If zu.lastindexof("(") = zu.indexof("(") Then
                        Exit For
                    End If
                    If zu.lastindexof(")")> zu.indexof(")")
                        zu = zu.Substring(0,zu.lastindexof(")"))
                        u1 = u1 + 1
                    End If
                    If zu.lastindexof(")") = zu.indexof(")") Then
                        Exit For
                    End If
                Next
                If zu Like "(*" And (u + 1) Mod 2 = 0 And (u1 + 1) Mod 2 = 0 Then
                    zu = zu & s2(i2) & "'" & t2(c) & "'" Or zu & s2(i2) & "'" & t2(c) & "' ("
                ElseIf zu Like "(*" And (u + 1) Mod 2 = 1 And (u1 + 1) Mod 2 = 0 Then
                    zu = zu & s2(i2) & "'" & t2(c) & "'" Or zu & s2(i2) & "'" & t2(c) & "' )"
                End If
            Next
            s2.RemoveAt(i3)
        Next
    Next
    DataTables("表A").StopRedraw
    For Each dr As DataRow In DataTables("表A").DataRows
        If CDbl(zu) = 2022 Then
            dr = DataTables("表A").AddNew
            dr("表达式") = zu
        End If
    Next
    DataTables("表A").ResumeRedraw
Next

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111422 积分:567186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/8 12:11:00 [只看该作者]

自己调试生成的内容是否符合要求

    For c As Integer = 0 To t2.count -1
        zu = s2(i) & "'" & t2(c) & "'" And "(" & s2(i) & "'" & t2(c) & "'"   '同时有两种情况,可这样写吗?
    Next
msgbox(zu)

msgbox(CDbl(zu))

 回到顶部
总数 27 1 2 3 下一页