一:整一些小型的題目
1、題目描述:
小樂樂上課需要走n階臺階,因為他腿比較長,所以每次可以選擇走一階或者走兩階,那麼他一共有多少種走法?
輸入描述:包含一個整數n(1<=n<=30)
輸出描述:輸出一個整數,即小樂樂可以走的方法數。
直接上程式碼,之後再解釋
1 #include<stdio.h> 2 int fun(int n) { 3 if (n <= 2) { 4 return n; 5 } 6 else 7 { 8 return fun(n - 1) + fun(n - 2); 9 } 10 } 11 int main() { 12 int n = 0; 13 scanf("%d", &n); 14 int cound = fun(n); 15 printf("%d\n", cound); 16 return 0; 17 }
這裡就是遞迴,先想:
n=1的時候,只有一種方法,就是邁出1步
n=2的時候,有兩種方法,一次邁出2步,或者分別進行邁出1步之後再1步
n>2的時候,就會有很多的方法,就是或者選擇一次邁出1步,或者選擇一次邁出2步,這個時候再繼續遞迴,那兩種方式,fun(n-1)+fun(n-2),就是這樣
2、題目描述:
描述
KiKi想判斷輸入的字元是不是字母,請幫他程式設計實現。
輸入描述 :
多組輸入,每一行輸入一個字元。
輸出描述 :
針對每組輸入,輸出單獨佔一行,判斷輸入字元是否為字母,輸出內容詳見輸出樣
例。
示例1
輸入 : A
6
輸出 : A is an alphabet.
6 is not an alphabet.
先上程式碼
1 #include<stdio.h> 2 int main() 3 { 4 char ch = 0; 5 while (scanf("%c", &ch) != EOF) { 6 if (ch >= 'a' && ch <= 'z') { 7 printf("%c is an alphabet.\n", ch); 8 } 9 else if (ch >= 'A' && ch <= 'Z') 10 { 11 printf("%c is an alphabet.\n", ch); 12 } 13 else { 14 printf("%c is not an alphabet.\n", ch); 15 } 16 getchar();//包含換行符 17 } 18 return 0; 19 }
這是比較常規的寫法
還有一種小眾的寫法
#include<stdio.h> int main() { char ch = 0; while (scanf(" %c", &ch) != EOF) { if (ch >= 'a' && ch <= 'z') { printf("%c is an alphabet.\n", ch); } else if (ch >= 'A' && ch <= 'Z') { printf("%c is an alphabet.\n", ch); } else { printf("%c is not an alphabet.\n", ch); } } return 0; }
scanf(" %c", &ch) 表示從標準輸入中讀取一個字元,並將該字元儲存到 ch 變數中。如果輸入是一個空白字元(如空格、換行符),它會跳過這些空白字元,直到遇到實際的字元才會繼續讀取;EOF 是一個常量,通常定義為 -1。它用於標識輸入結束或讀取錯誤。
再有一種寫法,利用庫函式里面的isalpha()函式來判斷是否是字母
1 #include<stdio.h> 2 int main() 3 { 4 char ch = 0; 5 while (scanf(" %c", &ch) != EOF) { 6 if (isalpha(ch)) { 7 printf("%c is an alphabet.\n", ch); 8 } 9 else { 10 printf("%c is not an alphabet.\n", ch); 11 } 12 } 13 return 0; 14 }