1樓:
#include
#define n 10
int check(int *a, int area,int t){int plus_num = 0;
int result = 0;
int i = 0;
for (; i
2樓:匿名使用者
遞迴對t進行全排列尋找可行解,不知道對不對,我不是大神。。
#include
#define max 10
int m,n,tn,t[max],r[max];
int ***b(int r,int pr,int m,int n)else
else}}
}}if(t[pr]%n==0)
else
else}}
}}return 0;
}void main()
}if(rult)
printf("yes");
else
printf("no");
rult=0;}}
3樓:
這是一個數論問題,首先要建立數學模型(或者叫做思路):
先就這個題目給的資料來分析一下:
面積條件:3*4≤6+3+2+1
t個數分成兩個整數的積。
6=x1*y1=1*6=2*3(1*6的組合因為6超出布料長度4,應該捨去)。
3=x2*y2=1*3
2=x3*y3=1*2
1=x4*y4=1*1
邊長條件:布料的每個邊,由t個數中幾個數取一個2項因子相加得到,邊的每一項有2*分解數個辦法,因此每條邊最多有2^t(t個數的分解方法之積),本例2^4*(2*1*1*1)=2^5=32種,得到32組2個方程組成的整數方程組。(本例1*1兩個因子無差別,少了32/2=16組,實際最多16組,舉例如下:
3=x1+x2+x3+x4,4=y1+y2+y3+y4;
逐個驗證,遇到滿足題意的返回yes。全部驗證完畢,沒有滿足要求的,返回no。
另外,我們可以模擬裁剪。
這裡面,只能分解成1*x格式的,是佈置的關鍵,他們的佈置方法只有兩個方向,一種形狀,而且必須組合形成1*布料邊長的矩形,比如上面例子:
1*3,可以沿布料3米邊裁出1米組成,餘下3*3正方形布料,t=3,3*3,裁出6,2,1;問題降了一次,可以遞迴;
3*3的布料,不能裁出1*6來,只能裁出2*3,餘下1*3布料,t=2,1*3,2,1;可以繼續遞迴;
1*3,裁出1*2,餘下1*1,t=1,1*1,1;可以繼續遞迴;
1*1,正好可以裁出1*1,成功。回答yes,結束。
一開始1*3如果沿4米邊裁剪,餘下的不是矩形,不能遞迴。這時我們看到,4米邊餘下一塊1*1的突出,可以接著裁出1*1,餘下矩形2*4,t=2,2*4,6,2;可以遞迴;
2*4,裁出2*3,餘下1*2,t=1,1*2,2;可以遞迴;
1*2,裁出1*2,正好,成功,回答yes,結束。
我們從只能分解成1*x的裡面最大的一塊開始裁剪,並且組合,裁齊,餘下矩形,將問題降次,遞迴。
1*x處理完畢後,再處理只能分解成2*x的(相對於布料),同樣由最大的開始,組合裁剪一邊,餘下矩形,降次,再遞迴。
4樓:
#include ....
#define max 100
typedef struct _jied jiedstruct _jied
void main()
if (mianji1 != mianji2)/*輸出 no*/
else
}a[p++].d=fenjcs;
}/* 分解後開始排列組合
** 如 6、3、2、1
** 分解為z(1,2)/x(6,3);(z1,x3);(z1,x2);(z1,x1)
** 則排列組合為:
** 1:(1,6);(1,3);(1,2);(1,1)** 2:(2,3);(1,3);(1,2);(1,1)** 再判斷1no2yes,則結果輸出yes*//* 下面只是t=4的寫法 */
w=0;
for (e1=0;e1
continue; else w=0; }} }} }}yes_flag: if (ishfobz == 1) /*輸出yes*/ else /*輸出no*/ /* 理論上這個思路比較笨和規矩,但是如果t不定時,這種寫法肯定無法完成,但遞迴或者迴圈或者樹的寫法都沒想出來 ** 不知道是不是我這個思路一開始就有問題,感覺極度無法實現** 如果正推的情況就更加崩潰了,比如3*4的在t=4的情況下可能出現哪幾種組合 ** 在排列組合的情況上,程式不知道有什麼更好的寫法嗎? ** 因為不知道怎麼寫,所以使用了近乎窮舉的方式 */} c語言程式設計,求大神指教? 5樓:精準動力 注重邏輯,從思維方式入手。 6樓: **文字: #include "stdio.h" int main(int argc,char *argv)printf("enter data...\n"); for(i=0;ifor(j=0;jputchar('\n'); for(i=0;ifor(j=0;jif(s[i][j]<60)putchar('\n'); return 0;} c語言,求大神指教 7樓: 二、#include "stdio.h" int main(int argc,char *argv)執行樣例: 三、#include "stdio.h" int main(int argc,char *argv)執行樣例: 8樓:唐泇三勺 #include #include main() void zh(char a) #include #include main() c語言剛剛入門,求大神指教。 c語言初學,求大神指教 9樓:44度 「%2.2e」中,前一個 2 表示該數字至少被輸出為 2 個字元,科學計數法肯定不止 2 個字元,所以它不起作用,即使沒有這個 2 也不影響結果;而後一個 2 表示顯示 2 位小數,所以結果有「1.20」,如果把「. 2」刪去,結果就會有 6 個小數位。後面的符號 + 和三位指數都是編譯器決定的,不能更改。 c語言「&&」與「||」,求大神指教啊 10樓:聽不清啊 ||(1) #include void main() 此結果是0,0 (2)#include void main() 此結果是0,3 11樓:郝在益 你這個問題,我時間有限就沒有細看,但我知道你應該是有一點沒有搞清楚的。 這一點有很多老師在講課的時候都忽略了,沒有講,但卻是非常重要的。 我們先說「或||」運算,相信你應該知道,或運算中如果有一項為1,那麼結果就一定為1.基於這個原理,c語言在或運算的時候,如果左邊項的結果為1(也就是正),那麼為了節省時間,右邊的一項是不會運算的,因為這個時候第二項不會影響結果。 同樣,在「和」運算中,遇0結果就為0.所以,如果第一項的結果為0的話,第二項也是不會被運算的。 你根據這2點在看看程式,相信你可以找到正確的答案。 滿意請採納,謝謝。 12樓:最方便**軟體 ||| 這個是或運算。 m=a>b c語言中非零為真。 既然a>b為假 所以m=0,由於是或運算m=0為假的情況下需要判斷第二個表示式 於是n=0。 && 這個是與運算。 由於m=0只有無論後一個表達是真還是假都將導致與運算為假所以後一個表示式忽略不執行。n的值不變。 其實你這個程式是非常不規範的。在編譯器不同的情況下是很容易報錯的。 c語言問題求大神指教
255 13樓:匿名使用者 c語言實現,輸入n,按1、2、3迴圈報數,報3的出局,求剩下最後一個的編號,參考**如下: #include #include int main() { int n,i,j=-1,**t=0; int *a; scanf("%d",&n); a=(int *)malloc(n*sizeof(int)); if(a==null)return 1; for(i=0;i 14樓: #include "stdio.h" #include int main(int argc,char *argv){char *p; int n,i,k,t; printf("please enter n(int 1000>n>0)...\nn="); if(scanf("%d",&n)!=1 || n<1 || n>999){ 執行樣例: 15樓:碧海風雲 就是約瑟夫環問題唄~給題主一個陣列實現的**吧#include #include #include /* 列印在列之人 */ void printjosephus (int *c, int n)/* n個人圍成圓圈c,依次報數,報到k的人出列 */void josephus (int n, int k)i = (i+1) % n; /* 除以n取餘,使i在0~n-1之間迴圈,以迴圈遍歷陣列 */ }putchar ('\n'); putchar ('\n'); printf ("最後倖存者的位置: \n"); printjosephus (c, n); free (c); }int main (void) 備註一下,以上**按順序編號,如果題主要求自定義編號的話,可自行補充。 c語言初學者,求大神指教 16樓:萌飛綠葉 // 3.14題 #include int main() printf("sum: %d\n", sum); return 0; }// 3.15題 #include int main() else n /= i; --i;}} putchar('\n'); return 0; }記得采納!! 17樓:吳少春 不難,自己看書解決。 include stdio.h int main if a c if b c printf c c c n a,b,c return 0 如何學c語言啊,我一遇到程式設計題就不會了,怎麼辦,求指教 勤能補拙。真想學的話,把你不會寫的題目記下來,仔細看看別人怎麼寫的 爭取理解吃透,然後不看別人的自己寫... 有什麼c語言的程式設計題,請講。不說出來,是不能幫到你的。c語言程式設計題求大神幫忙!include int main void newstr k 0 i 0,j k 1 while i j i j if i j printf s no n newstr else printf 迴文串 yes n ... 我給你看看我的程式吧 有不懂的再問我,可以私聊 include include int main for int i 1 i n i float sj jbgz i jj i 0.05 float sfgz jbgz i jj i bx i sj printf 編號 d bh i printf 姓名...c語言程式設計問題求指教,C語言程式設計問題,求指教
C語言程式設計題求大神教,c語言程式設計題求大神幫忙!
c語言程式設計求大神解答,C語言程式設計題,求助大神!