會下西洋棋的人都很清楚:皇后可以在橫、豎、斜線上不限步數地吃掉其他棋子。如何將8個皇后放在棋盤上(有8 * 8個方格),使它們誰也不能被吃掉!這就是著名的八皇后問題。input對於某個滿足要求的8皇后的擺放方法,定義乙個皇后串a與之對應,即a=b1b2…b8,其中b為相應擺法中第i行皇后所處的列數。已經知道8皇后問題一共有92組解(即92個不同的皇后串)。
給出乙個數b,要求輸出第b個串。串的比較是這樣的:皇后串x置於皇后串y之前,當且僅當將x視為整數時比y小。
第1行是測試資料的組數n,後面跟著n行輸入。每組測試資料佔1行,包括乙個正整數b(1 <= b <= 92)output
輸出有n行,每行輸出對應乙個輸入。輸出應是乙個正整數,是對應於b的皇后串。sample input
2192sample output
15863724code84136275
#include
#include
#include
int queenplace[92]
[8];
int count=0;
int board[8]
[8];
void
putqueen
(int ithqueen)
;int
main()
putqueen(0
);scanf
("%d"
,&n)
;for
(i=0
;i)return0;
}void
putqueen
(int ithqueen)
for(i=
0;i<
8;i++)}
}
逆波蘭表示式是一種把運算子前置的算術表示式,例如普通的表示式2 + 3的逆波蘭表示法為+ 2 3。逆波蘭表示式的優點是運算子之間不必有優先順序關係,也不必用括號改變運算次序,例如(2 + 3) * 4的逆波蘭表示法為* + 2 3 4。本題求解逆波蘭表示式的值,其中運算子包括+ - * /四個。input
輸入為一行,其中運算子和運算數之間都用空格分隔,運算數是浮點數output
《輸出為一行,表示式的值。sample input可直接用printf("%f\n", v)輸出表示式的值v。
sample output* + 11.0 12.0 + 24.0 35.0
hint1357.000000
可使用atof(str)把字串轉換為乙個double型別的浮點數。atof定義在math.h中。此題可使用函式遞迴呼叫的方法求解。
#include
#include
#include
#include
double
exp()}
intmain()
有一間長方形的房子,地上鋪了紅色、黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。input
包括多個資料集合。每個資料集合的第一行是兩個整數w和h,分別表示x方向和y方向瓷磚的數量。w和h都不超過20。在接下來的h行中,每行包括w個字元。每個字元表示一塊瓷磚的顏色,規則如下output1)『.』:黑色的瓷磚;
2)『#』:白色的瓷磚;
3)『@』:黑色的瓷磚,並且你站在這塊瓷磚上。該字元在每個資料集合中唯一出現一次。
當在一行中讀入的是兩個零時,表示輸入結束。
對每個資料集合,分別輸出一行,顯示你從初始位置出發能到達的瓷磚數(記數時包括初始位置的瓷磚)。如上圖所示,由正整數1, 2, 3, …組成了一棵無限大的二叉樹。從某乙個結點到根結點(編號是1的結點)都有一條唯一的路徑,比如從10到根結點的路徑是(10, 5, 2, 1),從4到根結點的路徑是(4, 2, 1),從根結點1到根結點的路徑上只包含乙個結點1,因此路徑就是(1)。對於兩個結點x和y,假設他們到根結點的路徑分別是(x1, x2, … ,1)和(y1, y2, … ,1)(這裡顯然有x = x1,y = y1),那麼必然存在兩個正整數i和j,使得從xi 和 yj開始,有xi = yj , xi + 1 = yj + 1, xi + 2 = yj + 2,… 現在的問題就是,給定x和y,要求xi(也就是yj)。input輸入只有一行,包括兩個正整數x和y,這兩個正整數都不大於1000。output輸出只有乙個正整數xi。sample input10 4sample output code這個是遞迴//普通演算法,沒有用到遞迴
#include
intmain()
printf
("%d"
,x);
}}
//遞迴演算法
#include
intcommon
(int x,
int y)
intmain()
把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用k表示)注意:5,1,1和1,5,1是同一種分法input第一行是測試資料的數目t(0<=t<=20)。以下每行均包含兩個整數outputm和n,以空格分開。1<=m,n<=10。
對輸入的每組資料m和n,用一行輸出相應的k。sample input1sample output code7 3
#include
intcount
(int x,
int y)
intmain()
}
C語言練習題
8 編寫乙個程式,將字串str2中的全部字元複製到字串str1中。要求 不能使用strcpy函式。12分 include definemaxlen 20 假設 str2 的長度不超過 str1 的長度 voidstrcopy char str1,char str2 intmain 9 3 20分 從...
C語言練習題
1.保密電文 某電報局的電文保密規律是將每個英文本母變成其後的第4個字母,例如a變成e,a變成e。最後四個字母 w,x,y,z或w,x,y,z 變成前四個字母 a,b,c,d或a,b,c,d 電文中的非字母字元不變。要求 輸入一行字串,輸出改變的字串。程式分析 題目程式 include intmai...
遞迴函式練習題
1 寫乙個函式,接收乙個引數,用來返回這個函式的階乘並輸出 12345 def func num if num 1 return 1 ret func num 1 return num ret print func 5 2 寫乙個函式實現斐波那契數列 1,2,3,5,8,13,21,34,55,89...