vb做24点(4个数算成24)。求个VB程序。

vb做24点(4个数算成24)。求个VB程序。,第1张

c语言 Dev-c编的

#include<stdio.h>

#include<stdlib.h>

#include<algorithm>

using namespace std

double maths(double a,double b,int i)

{

if(i==0)

return(a+b)

else if(i==1)

return(a-b)

else if(i==2)

return(a*b)

else

return(b == 0.0? 0.0: a/b)

}

int prin(int i)

{

if(i==0)printf(" + ")

else if(i==1)printf(" - ")

else if(i==2)printf(" x ")

else if(i==3)printf(" ÷ ")

}

int main()

{

int g,i,j,q

char t

double a,b,c,d

double X[4]

double N[4]

printf("24点是把4个小于13的正整数通过加减乘除运算,使最后的计算结果是24的一个数学游戏。可以考验人的智力和数学敏感性。\n\nInput Four Number Within 1-13, Then Press Enter:\n")

begin:g=0

scanf("%lf%lf%lf%lf",&N[0],&N[1],&N[2],&N[3])

for(i=0i<4i++)

{

if(N[i]<1||N[i]>13)

{

printf(" Wrong Input !\n")

goto end

}

}

sort(N,N+4)

for(i=0i<4i++)

{

X[i]=N[i]

}

do

{

for(i=0i<4i++)

{

for(j=0j<4j++)

{

for(q=0q<4q++)

{

a=maths(N[0],N[1],i)

b=maths(N[2],N[3],j)

c=maths(a,b,q)

if(c==24.0&&a>0.0&&b>0.0)

{

g=1

goto answer1

}

}

}

}

}while(next_permutation(N,N+4))

for(i=0i<4i++)

{

N[i]=X[i]

}

if(g==0)

{

do

{

for(i=0i<4i++)

{

for(j=0j<4j++)

{

for(q=0q<4q++)

{

a=maths(N[0],N[1],i)

b=maths(a,N[2],j)

c=maths(b,N[3],q)

if(c==24.0&&a>0.0&&b>0.0)

{

g=2

goto answer2

}

}

}

}

}while(next_permutation(N,N+4))

}

if(g==0)

{

for(i=0i<4i++)

{

N[i]=X[i]

}

do

{

for(i=0i<4i++)

{

for(j=0j<4j++)

{

for(q=0q<4q++)

{

a=maths(N[0],N[1],i)

b=maths(N[2],a,j)

c=maths(b,N[3],q)

if(c==24.0&&a>0.0&&b>0.0)

{

g=3

goto answer3

}

}

}

}

}while(next_permutation(N,N+4))

}

if(g==0)

{printf("\n No Answer !\n")

goto end}

answer1:

{ printf("\n Answer: ( %.0lf",N[0])

prin(i)

printf("%.0lf )",N[1])

prin(q)

printf("( %.0lf",N[2])

prin(j)

printf("%.0lf )=24\n",N[3])

goto end

}

answer2:

{

printf("\n Answer: (( %.0lf",N[0])

prin(i)

printf("%.0lf )",N[1])

prin(j)

printf("%.0lf )",N[2])

prin(q)

printf("%.0lf=24\n",N[3])

goto end

}

answer3:

{

printf("\n Answer: ( %.0lf",N[2])

prin(j)

printf("( %.0lf",N[0])

prin(i)

printf("%.0lf ))",N[1])

prin(q)

printf("%.0lf=24\n",N[3])

goto end

}

end:

{printf("\n*******************************************************\n\n")}

printf("Try Again(Y/N) ?\n")

scanf("%c",&t)

scanf("%c",&t)

if(t=='Y'||t=='y')

{

printf("Input Four Number Within 1-13, Then Press Enter:\n")

goto begin

}

system("pause")

return 0

}

设第一个数为a(0),第二a(1),第三a(2),第四a(3)。

Cls '清空屏幕

Dim b,c,d,e As Integer

For b = 0 To 3

For c = 0 To 3

For d = 0 To 3

For e = 0 To 3

If b<>c And c<>d And d<>e And e<>b And b<>d And c<>e Then

If a(b) + a(c) + a(d) + a(e) = 24 Then ?a(b)"+"a(c)"+"a(d)"+"a(e)

If a(b) + a(c) + a(d) - a(e) = 24 Then ?a(b)"+"a(c)"+"a(d)"-"a(e)

If a(b) + a(c) - a(d) - a(e) = 24 Then ?a(b)"+"a(c)"-"a(d)"-"a(e)

If a(b) - a(c) - a(d) - a(e) = 24 Then ?a(b)"-"a(c)"-"a(d)"-"a(e)

If a(b) * a(c) + a(d) + a(e) = 24 Then ?a(b)"×"a(c)"+"a(d)"+"a(e)

If a(b) * a(c) + a(d) - a(e) = 24 Then ?a(b)"×"a(c)"+"a(d)"-"a(e)

If a(b) * a(c) - a(d) - a(e) = 24 Then ?a(b)"×"a(c)"-"a(d)"-"a(e)

If a(b) * a(c) * a(d) + a(e) = 24 Then ?a(b)"×"a(c)"×"a(d)"+"a(e)

If a(b) * a(c) * a(d) - a(e) = 24 Then ?a(b)"×"a(c)"×"a(d)"-"a(e)

If a(b) * a(c) * a(d) * a(e) = 24 Then ?a(b)"×"a(c)"×"a(d)"×"a(e)

If a(b) / a(c) + a(d) + a(e) = 24 Then ?a(b)"÷"a(c)"+"a(d)"+"a(e)

If a(b) / a(c) + a(d) - a(e) = 24 Then ?a(b)"÷"a(c)"+"a(d)"-"a(e)

If a(b) / a(c) * a(d) + a(e) = 24 Then ?a(b)"÷"a(c)"×"a(d)"+"a(e)

If a(b) / a(c) * a(d) - a(e) = 24 Then ?a(b)"÷"a(c)"×"a(d)"-"a(e)

If a(b) / a(c) / a(d) + a(e) = 24 Then ?a(b)"÷"a(c)"÷"a(d)"+"a(e)

If a(b) / a(c) / a(d) - a(e) = 24 Then ?a(b)"÷"a(c)"÷"a(d)"-"a(e)

If a(b) / a(c) / a(d) * a(e) = 24 Then ?a(b)"÷"a(c)"÷"a(d)"×"a(e)

If a(b) / a(c) / a(d) / a(e) = 24 Then ?a(b)"÷"a(c)"÷"a(d)"÷"a(e)

If a(b) / a(c) + a(d) * a(e) = 24 Then ?a(b)"÷"a(c)"+"a(d)"×"a(e)

If a(b) / a(c) - a(d) * a(e) = 24 Then ?a(b)"÷"a(c)"-"a(d)"×"a(e)

If a(b) / a(c) + a(d) / a(e) = 24 Then ?a(b)"÷"a(c)"+"a(d)"÷"a(e)

If a(b) / a(c) - a(d) / a(e) = 24 Then ?a(b)"÷"a(c)"-"a(d)"÷"a(e)

End If

Next e,d,c,b

可能有问题,请先试试,有问题问我

只需要复制到程序中,引用函数s24就可以了,比如打印结果:Print s24(1,2,3,4)

Private Function s24(ByVal n1 As Single, ByVal n2 As Single, ByVal n3 As Single, ByVal n4 As Single) As String

Dim i As Integer, j As Integer

Dim a As Single, b As Single, c As Single, d As Single

Dim s() As String

Dim Num As Boolean

If n1 * n2 * n3 * n4 <1 Then s24 = "本程序只对正整数有效!": Exit Function

For j = 1 To 30

Select Case j

Case 1

For i = 1 To 1

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a + b + c + d = 24 Then

s24 = a &"+" &b &"+" &c &"+" &d &"=24"

Num = True

Exit For

End If

Next i

Case 2

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a + b + c - d = 24 Then

s24 = a &"+" &b &"+" &c &"-" &d &"=24"

Num = True

Exit For

End If

Next i

Case 3

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * b + c + d = 24 Then

s24 = a &"*" &b &"+" &c &"+" &d &"=24"

Num = True

Exit For

End If

Next i

Case 4

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * b + c - d = 24 Then

s24 = a &"*" &b &"+" &c &"-" &d &"=24"

Num = True

Exit For

End If

Next i

Case 5

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * b * c + d = 24 Then

s24 = a &"*" &b &"*" &c &"+" &d &"=24"

Num = True

Exit For

End If

Next i

Case 6

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * b * c - d = 24 Then

s24 = a &"*" &b &"*" &c &"-" &d &"=24"

Num = True

Exit For

End If

Next i

Case 7

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * b * c * d = 24 Then

s24 = a &"*" &b &"*" &c &"*" &d &"=24"

Num = True

Exit For

End If

Next i

Case 8

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * b + c * d = 24 Then

s24 = a &"*" &b &"+" &c &"*" &d &"=24"

Num = True

Exit For

End If

Next i

Case 9

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * b - c * d = 24 Then

s24 = a &"*" &b &"-" &c &"*" &d &"=24"

Num = True

Exit For

End If

Next i

Case 10

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a / b + c + d = 24 Then

s24 = a &"/" &b &"+" &c &"+" &d &"=24"

Num = True

Exit For

End If

Next i

Case 11

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * b / c + d = 24 Then

s24 = a &"*" &b &"/" &c &"+" &d &"=24"

Num = True

Exit For

End If

Next i

Case 12

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * b / c - d = 24 Then

s24 = a &"*" &b &"/" &c &"-" &d &"=24"

Num = True

Exit For

End If

Next i

Case 13

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * b * c / d = 24 Then

s24 = a &"*" &b &"*" &c &"/" &d &"=24"

Num = True

Exit For

End If

Next i

Case 14

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * b / c / d = 24 Then

s24 = a &"*" &b &"/" &c &"/" &d &"=24"

Num = True

Exit For

End If

Next i

Case 15

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If (a + b) * c / d = 24 Then

s24 = "(" &a &"+" &b &")*" &c &"/" &d &"=24"

Num = True

Exit For

End If

Next i

Case 16

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If (a + b) * c * d = 24 Then

s24 = "(" &a &"+" &b &")*" &c &"*" &d &"=24"

Num = True

Exit For

End If

Next i

Case 17

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If (a + b) * (c + d) = 24 Then

s24 = "(" &a &"+" &b &")*(" &c &"+" &d &")=24"

Num = True

Exit For

End If

Next i

Case 18

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If (a + b) * (c - d) = 24 Then

s24 = "(" &a &"+" &b &")*(" &c &"-" &d &")=24"

Num = True

Exit For

End If

Next i

Case 19

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If (a - b) * (c - d) = 24 Then

s24 = "(" &a &"-" &b &")*(" &c &"-" &d &")=24"

Num = True

Exit For

End If

Next i

Case 20

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If (a - b) * c / d = 24 Then

s24 = "(" &a &"-" &b &")*" &c &"/" &d &"=24"

Num = True

Exit For

End If

Next i

Case 21

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If (a - b) * c * d = 24 Then

s24 = "(" &a &"-" &b &")*" &c &"*" &d &"=24"

Num = True

Exit For

End If

Next i

Case 22

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If (a + b + c) * d = 24 Then

s24 = "(" &a &"+" &b &"+" &c &")*" &d &"=24"

Num = True

Exit For

End If

Next i

Case 23

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If (a + b + c) / d = 24 Then

s24 = "(" &a &"+" &b &"+" &c &")/" &d &"=24"

Num = True

Exit For

End If

Next i

Case 24

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If (a + b - c) * d = 24 Then

s24 = "(" &a &"+" &b &"-" &c &")*" &d &"=24"

Num = True

Exit For

End If

Next i

Case 25

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * (b + c) + d = 24 Then

s24 = a &"*(" &b &"+" &c &")+" &d &"=24"

Num = True

Exit For

End If

Next i

Case 26

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * (b - c) + d = 24 Then

s24 = a &"*(" &b &"-" &c &")+" &d &"=24"

Num = True

Exit For

End If

Next i

Case 27

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * (b + c) - d = 24 Then

s24 = a &"*(" &b &"+" &c &")-" &d &"=24"

Num = True

Exit For

End If

Next i

Case 28

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a * (b - c) - d = 24 Then

s24 = a &"*(" &b &"-" &c &")-" &d &"=24"

Num = True

Exit For

End If

Next i

Case 29

For i = 1 To 24

s = Split(Kind(i, n1, n2, n3, n4), " "): a = Val(Trim(s(0))): b = Val(Trim(s(1))): c = Val(Trim(s(2))): d = Val(Trim(s(3)))

If a + (b + c) / d = 24 Then

s24 = a &"+(" &b &"+" &c &")/" &d &"=24"

Num = True

Exit For

End If

Next i

Case 30

s24 = "无解"

Num = True

End Select

If Num = True Then Exit For

Next j

End Function

Private Function Kind(i As Integer, n1 As Single, n2 As Single, n3 As Single, n4 As Single) As String

Dim a As Single, b As Single, c As Single, d As Single

Select Case i

Case 1

a = n1: b = n2: c = n3: d = n4

Case 2

a = n1: b = n2: d = n3: c = n4

Case 3

a = n1: c = n2: b = n3: d = n4

Case 4

a = n1: c = n2: d = n3: b = n4

Case 5

a = n1: d = n2: b = n3: c = n4

Case 6

a = n1: d = n2: c = n3: b = n4

Case 7

b = n1: a = n2: c = n3: d = n4

Case 8

b = n1: a = n2: d = n3: c = n4

Case 9

b = n1: c = n2: a = n3: d = n4

Case 10

b = n1: c = n2: d = n3: a = n4

Case 11

b = n1: d = n2: a = n3: c = n4

Case 12

b = n1: d = n2: c = n3: a = n4

Case 13

c = n1: a = n2: b = n3: d = n4

Case 14

c = n1: a = n2: d = n3: b = n4

Case 15

c = n1: b = n2: a = n3: d = n4

Case 16

c = n1: b = n2: d = n3: a = n4

Case 17

c = n1: d = n2: a = n3: b = n4

Case 18

c = n1: d = n2: b = n3: a = n4

Case 19

d = n1: a = n2: b = n3: c = n4

Case 20

d = n1: a = n2: c = n3: b = n4

Case 21

d = n1: b = n2: a = n3: c = n4

Case 22

d = n1: b = n2: c = n3: a = n4

Case 23

d = n1: c = n2: a = n3: b = n4

Case 24

d = n1: c = n2: b = n3: a = n4

End Select

Kind = a &" " &b &" " &c &" " &d

End Function


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12025348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存