fengrunsheng
生活中本不缺少美,缺少的是發現美的眼睛!
級別: 網絡英雄
|
我認識了一個程序員,講到我們畢業生出來工資大概多少的時候,他出了一道題,說,這個題目的月薪是1000 ,如果做不出 說明你現在可能還需要努力突破¥1000 ,而不是突破¥5000 請用程序打印出a b c d e f g h i j k l這十二個字符的全部組合,每種組合占一行 你的結果可能會是 a b c d e a b c d f …… 請用任何你熟悉的語言寫出程序 10分鐘內完成, |
---|---|
|
659888714
沒有所謂失敗,除非你不再嘗試。
級別: 略有小成
|
諸位大仙,近幾天上網不方便,我自己搞了個利用循環嵌套的,一看就太拉雜了慚愧啊。 等隨后再總結一下大家的方法,謝謝啦 以下我弄得代碼暫時以數字代替字母,當排到12個數的時候就要算半個多小時了。 看來要排出26個字母真的不可行了。 //////////////////////////// #include <time.h> #include <windows.h> #include<stdio.h> main() { time_t t_start, t_current; FILE * fp ; fp=fopen("DATA.TXT","w"); int a,b,c,d,e,f,g,h,i,j,k,l; const int num = 12 ; fprintf(fp,"\n"); t_start = time(NULL) ; for(a=1;a<=num;a++) {//外層for if( 1 ) // num之1 fprintf(fp,"%d\n",a); for(b=1;b<=num;b++) {//2層for if( a<b ) // num之2 fprintf(fp,"%d,%d\n",a,b); for (c=1;c<=num;c++) {//3層for if( a<b && b<c ) // num之3 fprintf(fp,"%d,%d,%d\n",a,b,c); for (d=1;d<=num;d++) {//4層for if( a<b && b<c && c<d ) // num之4 fprintf(fp,"%d,%d,%d,%d\n",a,b,c,d); /////////計算完成百分比和時間////////// t_current = time(NULL) ; printf("已用時%.0f秒,完成%2.1f%%\r", difftime(t_current,t_start),(float)a/num * 100 - 0.1 ); ////////////////////////////////////// for (e=1;e<=num;e++) {//5層for if( a<b && b<c && c<d && d<e ) // num之5 fprintf(fp,"%d,%d,%d,%d,%d\n",a,b,c,d,e); for (f=1;f<=num;f++) {//6層for if( a<b && b<c && c<d && d<e && e<f ) // num之6 fprintf(fp,"%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f); for (g=1;g<=num;g++) {//7層for if( a<b && b<c && c<d && d<e && e<f && f<g ) // num之7 fprintf(fp,"%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g); for (h=1;h<=num;h++) {//8層for if( a<b && b<c && c<d && d<e && e<f && f<g && g<h ) // num之8 fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g,h); for (i=1;i<=num;i++) {//9層for if( a<b && b<c && c<d && d<e && e<f && f<g && g<h && h<i ) // num之9 fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g,h,i); for (j=1;j<=num;j++) {//10層for if( a<b && b<c && c<d && d<e && e<f && f<g && g<h && h<i && i<j ) // num之10 fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g,h,i,j); for (k=1;k<=num;k++) {//11層for if( a<b && b<c && c<d && d<e && e<f && f<g && g<h && h<i && i<j && j<k ) // num之11 fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g,h,i,j,k); }//11層for }//10層for }//9層for }//8層for }//7層for }//6層for }//5層for }//4層for }//3層for }//2層for }//外層for printf("計算全部完成,總計用時%.0f秒。\n", difftime(t_current,t_start)); printf("結果保存在程序所在目錄之下。\n"); } |
---|---|
本帖最近評分記錄: |