hpuoj 1005: C語言考試練習題_排列【dfs】
C語言考試練習題_排列
題目描述
有4個互不相同的數字,輸出由其中三個不重複數字組成的排列。
輸入
4個整數。
輸出
所有排列。
樣例輸入
1 2 3 4
樣例輸出
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 1 2 4 1 4 2 2 1 4 2 4 1 4 1 2 4 2 1 1 3 4 1 4 3 3 1 4 3 4 1 4 1 3 4 3 1 2 3 4 2 4 3 3 2 4 3 4 2 4 2 3 4 3 2
本來是不打算貼上來的,感覺自己做的太水了,但是覺得這個題還是很好的,雖然打的是全排列,但是輸出的格式不是正常的格式,這樣需要在深搜之前先處理一下,比如改變裡面的值,反正,我現在還沒想到不多次使用 dfs 怎麼處理這個問題.......
#include<stdio.h> #include<string.h> int vis[5],x[10],y[10],s[10]; void dfs(int v) { if(v==3) //控制個數 { int i; for(i=0;i<2;++i) //輸出控制 { printf("%d ",x[i]); } printf("%d\n",x[i]); //注意格式 return; } for(int i=0;i<3;++i) //迴圈儲存數組裡的資料. { if(!vis[i]) { vis[i]=1; x[v]=s[i]; dfs(v+1); vis[i]=0; } } } int main() { int i,j,k; while(~scanf("%d",&y[0])) { for(i=1;i<4;++i) { scanf("%d",&y[i]); } k=4; while(k--) { for(i=0,j=0;j<3;++i) //改變需要處理的陣列內部的值 { if(i!=k) { s[j++]=y[i]; } } dfs(0); //列印全排列 } printf("\n"); } return 0; } /************************************************************** Problem: 1005 User: 311409010319 Language: C++ Result: 正確 Time:0 ms Memory:816 kb ****************************************************************/
相關推薦
hpuoj 1005: C語言考試練習題_排列【dfs】
C語言考試練習題_排列 題目描述 有4個互不相同的數字,輸出由其中三個不重複數字組成的排列。 輸入 4個整數。 輸出 所有排列。 樣例輸入 1 2 3 4 樣例輸出 1 2 3
1004: C語言考試練習題_排列
題目 Description 有四個互不相同的數字,輸出由其中三個不重複數字組成的排列 Input 4個整數。 Output 所有排列。 Sanmple Input 1 2 3
C語言考試練習題_一元二次方程
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { float a = 0, b = 0,c = 0; fl
1003:C語言考試練習題—保留字母
1003:C語言考試練習題——保留字母 Description 編一個程式,輸入 一個字串,將組成字串的所有非英文字母的字元刪除後輸出。 Input 一個字串,長度不超過80個字元。 Out
C語言環形緩衝fifo實現【轉】
(轉自:https://blog.csdn.net/humanspider1/article/details/80965513) #define BUFFSIZE 1024 * 1024 #define min(x, y) ((x) < (y) ? (x) : (y)
C語言--I/O檔案操作【下】
I/O檔案操作 這是C提供的另一種檔案操作,它是通過直接存/取檔案來完成對檔案的處理,而上篇所說流式檔案操作是通過緩衝區來進行;流式檔案操作是圍繞一個FILE指標來進行,而此類檔案操作是圍繞一個檔案的"控制代碼"來進行,什麼是控制代碼呢?它是一個整數,是系統用來
淺談 C 語言中的結構體【struct】與聯合體【union】
## C語言中結構 struct 與聯合 union 語法基本一致,如下以 struct 為例 一、struct 的基本用法 struct student { int num; char* sex; &nbs
C語言深度解剖最後測試題【答案】
答案 “>6” 2.strcpy出問題,沒有/0 3.i=10,j=1; 4.除了sizeof(a)是400 5.255 6. 1)*p不能改,p可以改 2)*p不能改,p可以改 3)p不能改,*p可以改 4)*p
mooc_c語言_PTA練習題_中M2018秋C入門和進階練習_19
7-19 計算天數 (15 分) 本題要求編寫程式計算某年某月某日是該年中的第幾天。 輸入格式: 輸入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)給出日期。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。閏年的2月有29天。 輸出格式:
PAT考試乙級1005(C語言實現)
#include<stdio.h> int main(){ int num=0,i=0,n[1000]={0},a[101]={0},count=0; scanf("%d",&num); if(num<100)
第一個CGI程序-----完全就是普通的c語言嘛‘(*∩_∩*)′
同學 pat gree ostream 出現 targe 普通 get 方便 第一個CGI程序 ————完全就是普通的C語言嘛 ‘(*∩_∩*)′ PainterQ 2017年5月14日 上一篇博文裏面敘述了Apache的安裝和配置方法,恍恍惚惚我就擁有了自
[C語言]貪吃蛇_結構數組實現
log pan 實現 position .html .cn 數據類型 title ack 一、設計思路 蛇身本質上就是個結構數組,數組裏存儲了坐標x、y的值,再通過一個循環把它打印出來,蛇的移動則是不斷地刷新重新打印。所以撞墻、咬到自己只是數組x、y值的簡單比較。 二、
1005 - C語言程式設計教程(第三版)課後習題4.9
1005 - C語言程式設計教程(第三版)課後習題4.9 時間限制:1秒 記憶體限制:128兆 題目描述 輸入一個華氏溫度,要求輸出攝氏溫度。公式為 c=5(F-32)/9 輸出要求有文字說明,取位2小數。 輸入 一個華氏溫度,浮點數 輸出 攝氏溫度,浮點兩位小數 樣例輸入 -4
PAT 乙級 1001——1005 C語言
以下是我刷PAT乙級的一些總結,不足之處,請各路大神不吝賜教! 1001 題目:害死人不償命的(3n+1)猜想 (15) 卡拉茲(Callatz)猜想: 對任何一個自然數n,如果它是偶數,那麼把它砍掉一半;如果它是奇數,那麼把(3n+1)砍掉一半。這
用C語言來實現_輸入一個日期(年月日),計算是這一年中的第幾天
1.環境: 2.程式碼: /* *wuxiuwen *input date, the date of this year is calculated which day. *輸入一個日期(年月日),計算是這一年中的第幾天 */ #include<stdio.
廣州傳智播客iOS基礎班C語言考試題目(自我感覺挺簡單的,很多老師講的都沒考到,錯了一道選擇題,加油,OC!)
廣州傳智播客iOS基礎班C語言考試題目 考試時間:180分鐘 滿分:100分 及格分數:80分 一、選擇題(共10題,每題5分) 1. 若有陣列 int arr[2][3]; 則對a陣列元素的正確訪問是(C ) A. arr(1,2) B. ar
PAT 乙等 1005 C語言
1005. 繼續(3n+1)猜想 (25) 卡拉茲(Callatz)猜想已經在1001中給出了描述。在這個題目裡,情況稍微有些複雜。 當我們驗證卡拉茲猜想的時候,為了避免重複計算,可以記錄下遞推過程中遇到的每一個數。例如對n=3進行驗證的時候,我們需要計算3、5、8、4
C語言程式設計練習題庫
1. 題目:寫一個程式,判斷兩個浮點數是否足夠精確。/* File name:ApproximatelyEqual Function: ensure the accurcy of two numbers.|x-y|/min(|x|,|y|)<e Time: 20
c語言迴圈練習題
一、輸出變數的值。int quack = 2;quack -=6;//結果為-4,即使加上無符號的定義,結果也為負數。quack /=8;//結果為0,因為是int型別的變數,所以不顯示小數點後面的數字。quack%=3;//結果為2,如果除數比被除數小,則餘數為除數本身。二
C語言基礎練習題c語言試題100道(前三十道)
c語言試題100道(前三十道) 前三十道 //自己做的由於題幹較為模糊可能和標準答案有所差異 1. 按下述格式,從鍵盤輸入一個整數加法表示式:運算元1+運算元2,然後計算 並輸出表達式的計算結果,形式如下:運算元1+運算元2=計算結果。 2. 輸入兩個整形數並