C语言面试中10个经典的基础算法及代码
- C语言
- 关注:1.53W次
算法是一个程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的.算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手。以下是本站小编搜索整理的关于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; }
- 文章版权属于文章作者所有,转载请注明 https://xuezhezhai.com/jsj/cyuyan/o6xgjn.html