這是乙個經典的c語言演算法題目,題目是給出乙個給定的圖形,根據這幅圖形裡的作標可以求出這幅圖形一共可有構成多少個正方形。
例如下面這個圖形:
下面是解題思路:首先採用組合演算法,得出這些頂點一共能構成多少個有四個頂點構成的四邊形,並列出每乙個四邊形,然後用乙個子函式對這四邊形進行判斷,若是正方形就加一,這樣就可以得出一共含有多少個正方形。
具體**:
#include
#include
/*輸入的圖形的頂點數量,一定要輸入正確的頂點數量,修改這個值可以得到不同的點情況下的
正方形數量*/
#define n 13
#define b ((n*(n-1)*(n-2)*(n-3))/(4*3*2))
typedef structpoint;
typedef structsqure;
point dian[n];
point queue[4]; /*存放矩形座標*/
squre tmp;
int k=0;
int top=0;
void comb(int s,int n,int m);
int function(squre s);
int main(void)
comb(0,n,4);
printf("the sum of sibianxing are %d\n",k);
getch();
return 0;
}/*判斷是不是正方形,若是返回1,否則返回0*/
int function(squre s)else if(e==b)else
return 0;
}/*組合演算法:用於得到可能構成正方形的矩形集合
m代表選取的個數就是組合數c(m,n),從n中選取m個點
並返回正方形數量*/
void comb(int s,int n,int m)
j=function(tmp);
if(j==1)
return ;
}queue[top++]=dian[s];
comb(s+1,n,m);
top--;
comb(s+1,n,m);}
正方形 求被 包圍的0的個數
程式設計計算由 號圍成的下列圖形的面積。面積計算方法是統計 號所圍成的閉合曲線中水平線和垂直線交點的數目。如下圖所示,在10 10的二維陣列中,有 圍住了15個點,因此面積為15。輸入0 1矩陣 1表示 輸出面積。0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0...
用Python的turtle畫乙個正方形圓形五角星
我在學習python時做的乙個簡單的正方形中夾乙個圓形再夾乙個五角星 如下圖所示 畫正方形 t.begin fill for i in range 4 t.forward 200 t.right 90 t.end fill t.right 90 調整畫筆位置 t.forward 100 t.fill...
OpenGL學習筆記 2 畫乙個正方形
void baseinit glfwmakecontextcurrent glwindow if gladloadglloader gladloadproc glfwgetprocaddress 畫乙個普通的正方形 void normalsquare 索引 unsigned int indices ...