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