斐波那契数列 阶乘问题 数组的变换

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;
    }

 

posted on 2018-10-11 21:31  singleday  阅读(61)  评论(0编辑  收藏  举报