C基础(26——30)
如果n越大,则递归计算比较慢//#include<stdio.h>//#include<stdlib.h>////intFibNoRecursion(intn)//斐波那契非递归//{//inta=0;//intb=1;//intc=a+b;////if(n==0)//return0;//if(n==1)//returnb;//if(n==2)//returna+b;//for(inti=3;i<=n;i++)//{//a=b;//b=c;//c=a+b;//}//returnc;//}//voidtest()//{//intn=0;//printf("Pleaseinputn:");//scanf("%d",&n);//intret=FibNoRecursion(n);//printf("Fibonacci(%d)=%d\n",n,ret);//}//intmain()//{//test();//system("pause");//return0;//}//数组实现#include<stdio.h>#include<stdlib.h>intFibNoRecursion(intn)//斐波那契非递归{intfib_arr[100]={0};//数组元素全部初始化为0fib_arr[0]=1;fib_arr[1]=1;intcount=0;while(count<n-1){fib_arr[count+2]=fib_arr[count+1]+fib_arr[count];count++;}returnfib_arr[n-1];}voidtest(){intn=0;printf("Pleaseinputn:");scanf("%d",&n);intret=FibNoRecursion(n);printf("Fibonacci(%d)=%d\n",n,ret);}intmain(){test();system("pause");return0;}
结果:
#include<stdio.h>#include<stdlib.h>voidtest(){char*str="abcdefghi123";intcount=0;while(*str){count++;str++;}printf("%d\n",count);}intmain(){test();system("pause");return0;}
结果:
//不用临时变量,即可以用递归来求#include<stdio.h>#include<stdlib.h>intStrlen(char*str){if(*str=='\0')return0;if(*str){str++;returnStrlen(str)+1;}}voidtest(){char*str="0abc123def";intret=Strlen(str);printf("strlen=%d\n",ret);}intmain(){test();system("pause");return0;}
结果:
#include<stdio.h>#include<stdlib.h>#defineN8voidtest(){intarr[N]={23,88,12,8,37,99,25,0};for(inti=0;i<N-1;i++){intj=i+1;for(j;j<N;j++){if(arr[i]>arr[j]){inttmp=arr[i];arr[i]=arr[j];arr[j]=tmp;}}}//输出for(intm=0;m<N;m++){printf("%d",arr[m]);}printf("\n");}intmain(){test();system("pause");return0;}
结果:
#include<stdio.h>#include<stdlib.h>voidtest(){inta=15;intcount=0;while(a){if(a&1)//按位与count++;a=a>>1;}printf("%d\n",count);}intmain(){test();system("pause");return0;}
结果:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。