1.遞迴和非遞迴分別實現求第n個斐波那契數。
非遞迴:
int fibnotrecursion(int n)
int prenum = 1;
int preprenum = 1;
int result = 1;
for (int i = 2; i < n ; i++)
return result;
}
遞迴:
int fibrecursion(int n)
if (n == 1 || n == 2)
return fibrecursion(n - 1) + fibrecursion(n - 2);
}
2.編寫乙個函式實現n^k,使用遞迴實現
double mypow(int n, int k)
else
}
3. 寫乙個遞迴函式digitsum(n),輸入乙個非負整數,返回組成它的數字之和,
例如,呼叫digitsum(1729),則應該返回1+7+2+9,它的和是19
int digitsum(int n)
if (n > 9)
return n % 10;
}
4. 編寫乙個函式 reverse_string(char * string)(遞迴實現)
實現:將引數字串中的字元反向排列。
要求:不能使用c函式庫中的字串操作函式。
extern int mystrlenrecursion(char* str);
void reverse_string(char * string)
}
這裡用到了乙個求字串長度的函式,寫在下面。
5.遞迴和非遞迴分別實現strlen
//遞迴
int mystrlenrecursion(char* str)
return mystrlenrecursion(str + 1) + 1;
}//非遞迴
int mystrlennotrecursion(char* str)
return len;
}
6.遞迴和非遞迴分別實現求n的階乘
//非遞迴
int factorial(int n)
if (n == 0) return result;
for (int i = 1; i <= n; i++)
return result;
}//遞迴
int factorialrecursion(int n)
if (n == 1 || n == 0)
return factorialrecursion(n - 1) * n;
}
7.遞迴方式實現列印乙個整數的每一位
void printnumber(int n)
printf("%d\n", n % 10);
}
C語言練習7
1.遞迴和非遞迴分別實現求第n個斐波那契數。define crt secure no warnings include include intfibonacci int n return fibonacci n 1 fibonacci n 2 intfibonacci int n return f3...
C語言模擬練習(7)
1.乙個陣列中只有兩個數字是出現一次,其他所有數字都出現了兩次。找出這兩個數字,程式設計實現。include void find int arr,int sz 查詢只出現一次的數字 if 1 k 出現1次為1 出現2次為2 int main int sz sizeof arr sizeof arr ...
C語言練習
練習1 include stdlib.h include iostream.h include stdio.h void main cout 輸入檔案1的資料內容 以 結束 while ch stu n void input char a a用於接收要寫入資料的檔名 inti file fp if ...