算法是一個程序和軟件的靈魂,作爲一名優秀的程序員,只有對一些基礎的.算法有着全面的掌握,纔會在設計程序和編寫代碼的過程中顯得得心應手。以下是本站小編搜索整理的關於C語言面試中10個經典的基礎算法及代碼,供參考學習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!
1、計算Fibonacci數列
Fibonacci數列又稱斐波那契數列,又稱黃金分割數列,指的是這樣一個數列:1、1、2、3、5、8、13、21。
C語言實現的代碼如下:
/* Displaying Fibonacci sequence up to nth term where n is entered by user. */
#include
int main()
{
int count, n, t1=0, t2=1, display=0;
printf("Enter number of terms: ");
scanf("%d",&n);
printf("Fibonacci Series: %d+%d+", t1, t2); /* Displaying first two terms */
count=2; /* count=2 because first two terms are already displayed. */
while (count { display=t1+t2; t1=t2; t2=display; ++count; printf("%d+",display); } return 0; } 結果輸出: Enter number of terms: 10 Fibonacci Series: 0+1+1+2+3+5+8+13+21+34+ 也可以使用下面的源代碼: /* Displaying Fibonacci series up to certain number entered by user. */ #include int main() { int t1=0, t2=1, display=0, num; printf("Enter an integer: "); scanf("%d",&num); printf("Fibonacci Series: %d+%d+", t1, t2); /* Displaying first two terms */ display=t1+t2; while(display { printf("%d+",display); t1=t2; t2=display; display=t1+t2; } return 0; } 結果輸出: Enter an integer: 200 Fibonacci Series: 0+1+1+2+3+5+8+13+21+34+55+89+144+ 2、迴文檢查 源代碼: /* C program to check whether a number is palindrome or not */ #include int main() { int n, reverse=0, rem,temp; printf("Enter an integer: "); scanf("%d", &n); temp=n; while(temp!=0) { rem=temp%10; reverse=reverse*10+rem; temp/=10; } /* Checking if number entered by user and it's reverse number is equal. */ if(reverse==n) printf("%d is a palindrome.",n); else printf("%d is not a palindrome.",n); return 0; } 結果輸出: Enter an integer: 12321 12321 is a palindrome. 3、質數檢查 注:1既不是質數也不是合數。 源代碼: /* C program to check whether a number is prime or not. */ #include int main() { int n, i, flag=0; printf("Enter a positive integer: "); scanf("%d",&n); for(i=2;i<=n/2;++i) { if(n%i==0) { flag=1; break; } } if (flag==0) printf("%d is a prime number.",n); else printf("%d is not a prime number.",n); return 0; } 結果輸出: Enter a positive integer: 29 29 is a prime number. 4、打印金字塔和三角形 使用 * 建立三角形 * * * * * * * * * * * * * * * 源代碼: #include int main() { int i,j,rows; printf("Enter the number of rows: "); scanf("%d",&rows); for(i=1;i<=rows;++i) { for(j=1;j<=i;++j) { printf("* "); } printf(""); } return 0; } 如下圖所示使用數字打印半金字塔。 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 源代碼: #include int main() { int i,j,rows; printf("Enter the number of rows: "); scanf("%d",&rows); for(i=1;i<=rows;++i) { for(j=1;j<=i;++j) { printf("%d ",j); } printf(""); } return 0; } 用 * 打印半金字塔 * * * * * * * * * * * * * * * 源代碼: #include int main() { int i,j,rows; printf("Enter the number of rows: "); scanf("%d",&rows); for(i=rows;i>=1;--i) { for(j=1;j<=i;++j) { printf("* "); } printf(""); } return 0; } 用 * 打印金字塔 * * * * * * * * * * * * * * * * * * * * * * * * * 源代碼: #include int main() { int i,space,rows,k=0; printf("Enter the number of rows: "); scanf("%d",&rows); for(i=1;i<=rows;++i) { for(space=1;space<=rows-i;++space) { printf(" "); } while(k!=2*i-1) { printf("* "); ++k; } k=0; printf(""); } return 0; } 用 * 打印倒金字塔 * * * * * * * * * * * * * * * * * * * * * * * * * 源代碼: #include int main() { int rows,i,j,space; printf("Enter number of rows: "); scanf("%d",&rows); for(i=rows;i>=1;--i) { for(space=0;space printf(" "); for(j=i;j<=2*i-1;++j) printf("* "); for(j=0;j printf("* "); printf(""); } return 0; }