请使用递归实现n!
#include
#include
#include
#include
#include
int fun(int n)
{
if (n==0)
{
return 1;
} else
{
return n*fun(n-1);
}
}
int main(int argc, const char *argv[])
{
int n;
printf("please enter n:");
scanf("%d",&n);
int sum=fun(n);
printf("%d的阶乘是: %d\n",n,sum);
return 0;
}
#include
#include
#include
#include
#include
int fun(int n)
{
if(n==0)
return 0;
else
return n+fun(n-1);
}
int main(int argc, const char *argv[])
{
int n;
printf("please enter n:");
scanf("%d",&n);
int sum=fun(n);
printf("0-%d的和是: %d\n",n,sum);
return 0;
}
#include
#include
#include
#include
#include
int fun(int n)
{
if(n==1||n==2)
{
return 1;
}
else
{
return fun(n-1)+fun(n-2);
}
}
int main(int argc, const char *argv[])
{
int n;
printf("please enter n:");//n为打印的数列层数
scanf("%d",&n);
printf("斐波那契数列:");
for(int i=1;i<=n;i++)
{
printf("%d ",fun(i));
}
puts("");
return 0;
}
#include
#include
#include
#include
#include
void Exchange(int n)
{
if(n==0)
{
return ;
}
else
{
Exchange(n/2);
printf("%d",n%2);
}
}
int main(int argc, const char *argv[])
{
int n;
printf("please enter n:");
scanf("%d",&n);
printf("十进制数%d转换为二进制数为:",n);
Exchange(n);
puts("");
return 0;
}
#include
#include
#include
#include
#include
int fun(int n)
{
if(n==0)
return 0;
else
return n%10+fun(n/10);
}
int main(int argc, const char *argv[])
{
int n;
printf("please enter n:");
scanf("%d",&n);
int sum=fun(n);
printf("sum=%d\n",sum);
return 0;
}
#include
#include
#include
#include
#include
int fun(int n)
{
if(n<10)
return n;
else
{
return n%10*fun(n/10);
}
}
int main(int argc, const char *argv[])
{
int n;
printf("please enter n:");
scanf("%d",&n);
int sum=fun(n);
printf("sum=%d\n",sum);
return 0;
}
#include
#include
#include
#include
#include
//整体逆置+单词逆置
void reverseAll(char str[], int start, int end)
{
if(end-start<1)
{
return ;
}
else
{
char t=str[start];
str[start]=str[end];
str[end]=t;
reverseAll(str,start+1,end-1);
}
}
//逆置单词
void reverseWords(char str[],int len)
{
int start=0;
int end=0;
// 先逆置整个字符串
reverseAll(str,0,len-1);
// 再逆置每个单词
while (end