資源簡介
一個關于如何計算出給定4個數(shù)得到24點的算法,在代碼中我給了詳細的注釋,沒用的什么復雜的算法和數(shù)據(jù)結(jié)構(gòu),尤其適合那些看不懂網(wǎng)上其他人代碼的人,還有那些基礎不好的同學,超簡單,但是功能還算可以,基本上把每種可能都包含進去了

代碼片段和文件信息
#include?“stdio.h“
main()
{
float?a[4];????//存放數(shù)字的
char?b[4];??//存放運算符的
int?c[1+4];???//輸出時將float轉(zhuǎn)換為int
b[0]=‘+‘;
b[1]=‘-‘;
b[2]=‘*‘;
b[3]=‘/‘;
int?q=0;
float?record1record2record3;
int?number1number2number3number4;
int?operat1operat2operat3;
float?result;?//計算沒有括號和有一個括號的情況
float?result1result2;//計算有兩個括號的情況
printf(“請輸入4個數(shù)字:\n“);
scanf(“%f?%f?%f?%f“&a[0]&a[1]&a[2]&a[3]);
/*
???先考慮沒有括號和有一個括號的情況
???*/
for(number1=0;number1<4;number1++)????//排列第一個數(shù)
{
result=a[number1];
record1=result;
for(operat1=0;operat1<4;operat1++)????//第一個運算符
{
for(number2=0;number2<4;number2++)//第二個數(shù)
{
result=record1;
if(number2!=number1)
{
if(operat1==0)
{result+=a[number2];}
if(operat1==1)
{result-=a[number2];}
if(operat1==2)
{result*=a[number2];}
if(operat1==3)
{result/=a[number2];}
record2=result;
for(operat2=0;operat2<4;operat2++)??//第二個運算符
{
for(number3=0;number3<4;number3++)??//第三個數(shù)
{
result=record2;
if(number1!=number2&&number2!=number3&&number1!=number3)
{
if(operat2==0)
{
result+=a[number3];
}
if(operat2==1)
{
result-=a[number3];
}
if(operat2==2)
{
result*=a[number3];
}
if(operat2==3)
{result/=a[number3];}
record3=result;
for(operat3=0;operat3<4;operat3++)?//第三個運算符
{???
for(number4=0;number4<4;number4++)//第四個數(shù)
{??
result=record3;
if(number1!=number2&&number2!=number3&&number3!=number4&&
number1!=number3&&number1!=number4&&number2!=number4)
{
if(operat3==0)
{result+=a[number4];}
if(operat3==1)
{result-=a[number4];}
if(operat3==2)
{result*=a[number4];}
if(operat3==3)
{result=result/a[number4];}
if(result==24)
{
c[1]=(int)a[number1]c[2]=(int)a[number2]c[3]=(int)a[number3]c[4]=(int)a[number4];
c[0]=(int)result;
printf(“((%d?%c?%d)?%c?%d)?%c?%d?=%d??%d\n“c[1]
b[operat1]c[2]b[operat2]c[3]b[operat3]c[4]c[0]q);
result=0;
q++;
}
}
}
}
}
}
}
}
}
}
}
printf(“********************************************\n“);
//此處開始計算有2個括號的情況,總共有C4_2*2*2*2*2=192種結(jié)
result=0;
q=0;
for(number1=0;number1<4;number1++)????//排列第一個數(shù)
{
for(operat1=0;operat1<4;operat1++)????//第一個運算符
{
for(number2=0;number2<4;number2++)//第二個數(shù)
{
if(number2!=number1)
{
if(operat1==0)
{result1=a[number1]+a[number2];}
if(operat1==1)
{result1=a[number1]-a[number2];}
if(operat1==2)
{result1=a[number1]*a[number2];}
if(operat1==3)
{result1=a[number
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4533??2013-04-02?01:18??24點游戲C語言版5\24點游戲.cpp
?????文件???????3427??2013-03-31?00:48??24點游戲C語言版5\24點游戲.dsp
?????文件????????541??2013-03-31?01:19??24點游戲C語言版5\24點游戲.dsw
?????文件??????50176??2013-04-08?22:33??24點游戲C語言版5\24點游戲.ncb
?????文件??????49664??2013-04-08?22:33??24點游戲C語言版5\24點游戲.opt
?????文件????????764??2013-04-02?20:53??24點游戲C語言版5\24點游戲.plg
?????文件?????208987??2013-04-02?20:53??24點游戲C語言版5\Debug\24點游戲.exe
?????文件?????259136??2013-04-02?20:53??24點游戲C語言版5\Debug\24點游戲.ilk
?????文件???????6096??2013-04-02?20:53??24點游戲C語言版5\Debug\24點游戲.obj
?????文件?????213732??2013-04-02?01:18??24點游戲C語言版5\Debug\24點游戲.pch
?????文件?????467968??2013-04-02?01:18??24點游戲C語言版5\Debug\24點游戲.pdb
?????文件??????50176??2013-04-08?22:27??24點游戲C語言版5\Debug\vc60.idb
?????文件??????53248??2013-04-02?01:18??24點游戲C語言版5\Debug\vc60.pdb
?????目錄??????????0??2013-04-08?22:52??24點游戲C語言版5\Debug
?????目錄??????????0??2013-04-08?22:52??24點游戲C語言版5
-----------?---------??----------?-----??----
??????????????1368448????????????????????15
評論
共有 條評論