十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
c语言 Dev-c编的
10年积累的成都网站建设、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有章贡免费网站建设让你可以放心的选择与我们合作。
#includestdio.h
#includestdlib.h
#includealgorithm
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=0;i4;i++)
{
if(N[i]1||N[i]13)
{
printf(" Wrong Input !\n");
goto end;
}
}
sort(N,N+4);
for(i=0;i4;i++)
{
X[i]=N[i];
}
do
{
for(i=0;i4;i++)
{
for(j=0;j4;j++)
{
for(q=0;q4;q++)
{
a=maths(N[0],N[1],i);
b=maths(N[2],N[3],j);
c=maths(a,b,q);
if(c==24.0a0.0b0.0)
{
g=1;
goto answer1;
}
}
}
}
}while(next_permutation(N,N+4));
for(i=0;i4;i++)
{
N[i]=X[i];
}
if(g==0)
{
do
{
for(i=0;i4;i++)
{
for(j=0;j4;j++)
{
for(q=0;q4;q++)
{
a=maths(N[0],N[1],i);
b=maths(a,N[2],j);
c=maths(b,N[3],q);
if(c==24.0a0.0b0.0)
{
g=2;
goto answer2;
}
}
}
}
}while(next_permutation(N,N+4));
}
if(g==0)
{
for(i=0;i4;i++)
{
N[i]=X[i];
}
do
{
for(i=0;i4;i++)
{
for(j=0;j4;j++)
{
for(q=0;q4;q++)
{
a=maths(N[0],N[1],i);
b=maths(N[2],a,j);
c=maths(b,N[3],q);
if(c==24.0a0.0b0.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;
}
将时间转换为指定的字符串格式用:Now.ToString("yyyyMMddHHmmss")就Ok了。
例如:年份用小写yyyy(大写不识别),大写MM识别为月份,小写mm识别为分钟,日期天为大写DD(小写不识别),
小时大写HH识别为24小时制,小写hh识别为12小时制,秒用小写ss(大写不识别)
补充:Visual Basic.NET是基于微软.NET Framework之上的面向对象的编程语言。
其在调试时是以解释型语言方式运作,而输出为EXE程序是是以编译型语言方式运作。
可以看作是Visual Basic在.Net Framework平台上的升级版本,增强了对面向对象的支持。大多的VB.Net程序员使用Visual Studio .Net作为IDE(integrated development environment).SharpDevelop是另一种可用的开源的IDE。
VB.Net需要在.Net Framework平台上才能执行。
设第一个数为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 bc And cd And de And eb And bd And ce 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
可能有问题,请先试试,有问题问我
第1、3、5、7的空格是放牌的(每空一张牌),而第2、4、6的空格是放加减乘除的符号的(每空一个符号)
好,那么根据数学中的排列组合,4张牌放到4个空格里面有24种不同的排列,把4个符号放到3个空格里面也是有24种不同的排列,那么再把这两个排列再排列的话,就有24*24=576种排列,那么你的程序要做的就是把这576种排列全部算过,结果是不是等于24就OK了,我想程序循环576下应该只要不到1秒的时间吧