您好,登錄后才能下訂單哦!
如果n越大,則遞歸計算比較慢 //#include <stdio.h> //#include <stdlib.h> // //int FibNoRecursion(int n) //斐波那契非遞歸 //{ // int a=0; // int b=1; // int c=a+b; // // if(n==0) // return 0; // if(n==1) // return b; // if(n==2) // return a+b; // for(int i=3;i<=n;i++) // { // a=b; // b=c; // c=a+b; // } // return c; //} //void test() //{ // int n=0; // printf("Please input n: "); // scanf("%d",&n); // int ret=FibNoRecursion(n); // printf("Fibonacci(%d) = %d\n",n,ret); //} //int main() //{ // test(); // system("pause"); // return 0; //} //數組實現 #include <stdio.h> #include <stdlib.h> int FibNoRecursion(int n) //斐波那契非遞歸 { int fib_arr[100]={0}; //數組元素全部初始化為0 fib_arr[0]=1; fib_arr[1]=1; int count=0; while(count<n-1) { fib_arr[count+2]=fib_arr[count+1]+fib_arr[count]; count++; } return fib_arr[n-1]; } void test() { int n=0; printf( "Please input n: "); scanf( "%d",&n); int ret=FibNoRecursion(n); printf( "Fibonacci(%d) = %d\n",n,ret); } int main() { test(); system( "pause"); return 0; }
結果:
#include <stdio.h> #include <stdlib.h> void test() { char* str="abcdefghi123" ; int count=0; while(*str) { count++; str++; } printf( "%d\n",count); } int main() { test(); system( "pause"); return 0; }
結果:
//不用臨時變量,即可以用遞歸來求 #include <stdio.h> #include <stdlib.h> int Strlen(char * str) { if(*str =='\0') return 0; if(*str ) { str++; return Strlen(str )+1; } } void test() { char* str="0abc123def" ; int ret=Strlen(str); printf( "strlen=%d\n",ret); } int main() { test(); system( "pause"); return 0; }
結果:
#include <stdio.h> #include <stdlib.h> #define N 8 void test() { int arr[N ]={23,88,12,8,37,99,25,0}; for(int i=0;i<N-1;i++) { int j=i+1; for(j;j<N ;j++) { if(arr[i]>arr[j]) { int tmp=arr[i]; arr[i]=arr[j]; arr[j]=tmp; } } } //輸出 for(int m=0;m<N;m++) { printf( "%d ",arr[m]); } printf( "\n"); } int main() { test(); system( "pause"); return 0; }
結果:
#include <stdio.h> #include <stdlib.h> void test() { int a=15; int count=0; while(a) { if(a & 1) //按位與 count++; a=a>>1; } printf( "%d\n",count); } int main() { test(); system( "pause"); return 0; }
結果:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。