斐波那契数列 阶乘问题 数组的变换
1.(1) #include<stdio.h> #include<stdlib.h> int fib(int n) { if(n<=2) return 1; else return fib(n-1)+fib(n-2); } int main() { int n=0; int ret=0; scanf("%d",&n); ret=fib(n); printf("%d",ret); system("pause"); return 0; } 1.(2) #include<stdio.h> #include<stdlib.h> int fib(int n ) { int i=0; int a=1; int b=1; int c=0; if(n<=2) return 1; else for(i=3;i<=n;i++) { c=a+b; a=b; b=c; } return c; } int main() { int n=0; int ret=0; scanf("%d",&n); ret=fib(n); printf("%d",ret); system("pause"); return 0; } 2. #include<stdio.h> #include<stdlib.h> int nk(int n,int k ) { if(k==1) return n; else return n* nk(n,k-1); } int main() { int n=0; int k=0; scanf("%d %d",&n,&k); int ret=0; ret=nk(n,k); printf("%d",ret); system("pause"); return 0; } 3. #include<stdio.h> #include<stdlib.h> int jia(unsigned int n) {int sum=0; if(n>9) return jia(n/10)+n%10 ; } int main() { int ret = 0; unsigned int n=0; scanf("%d",&n); ret=jia(n); printf("%d",ret); system("pause"); return 0; } 4. #include<stdio.h> #include<stdlib.h> #include<string.h> void reverse_string(char *arr) { int len=strlen(arr);//求数组长度 char tmp= *arr; *arr=*(arr+len-1);//将最后一个元素给第一个元素 *(arr+len-1)='\0'; //将最后一个元素放\0 if(strlen(arr+1)>=2) reverse_string(arr+1); *(arr+len-1)=tmp; //将第一个值放在最后一个位置 } int main() { char arr[]="abcdef"; reverse_string(arr); printf("%s\n",arr); system("pause"); return 0; } 5. #include<stdio.h> #include<stdlib.h> int my_strlen(char *str) { if('\0'==*str) return 0; else return 1+my_strlen(1+str); } int my_strlen(char* str) { int count=0; while('\0'!=*str) { *str++ ; count++; } return count; } int main() { char arr[] = "abcdef"; int len=my_strlen(arr); printf("%d\n",len); system("pause"); return 0; } 6.1 #include<stdio.h> #include<stdlib.h> int njc(int n) { if(n<=1) return 1; else return n*njc(n-1); } int main() { int n=0; int ret=0; scanf("%d",&n); ret=njc(n); printf("%d",ret); system("pause"); return 0; } 6.2 #include<stdio.h> #include<stdlib.h> int jc(int n) { int sum=1; int k=n; int i=0; if(n<=1) return 1; else for(i=2;i<=n;i++) { sum=sum*k; k--; } return sum; } int main() { int ret=0; int n=0; scanf("%d",&n); ret=jc(n); printf("%d",ret); system("pause"); return 0; } 7. #include<stdio.h> #include<stdlib.h> void jia(unsigned int n) {int sum=0; if(n>9) jia(n/10); printf("%d\n",n%10); } int main() { unsigned int n=0; scanf("%d",&n); jia(n); system("pause"); return 0; }