一级目录
进制的转换
#include <stdio.h>
void two(int n);
void eight(int n);
void sixteen(int n);
int main()
{
int x,y;
scanf("%d %d",&x,&y);
if(y==2)two(x);
if(y==8)eight(x);
if(y==16)sixteen(x);
}
void two(int n)
{
if(n==0)
return;
else
{
two(n/2);
printf("%d",n%2);
}
}
void eight(int n)
{
if(n==0)
return;
else
{
eight(n/8);
printf("%d",n%8);
}
}
void sixteen(int n)
{
int arr[20],i;
for(i=0;1;i++)
{
arr[i]=n%16;
n/=16;
if(n==0)break;
}
for(;i>=0;i--)
{
switch(arr[i])
{
case 10:
printf("A");break;
case 11:
printf("B");break;
case 12:
printf("C");break;
case 13:
printf("D");break;
case 14:
printf("F");break;
case 15:
printf("E");break;
default :
printf("%d",arr[i]);
}
}
printf("\n");
}
二级目录
用递归的方式实现最大公约数的求法
#include <stdio.h>
int gcd(int x,int y);
int main()
{
int a,b,tmp;
scanf("%d %d",&a,&b);
if(a<b)
tmp=a,a=b,b=tmp;
printf("%d",gcd(a,b));
}
int gcd(int x,int y)
{
if(x%y==0)
return y;
else
gcd(y,x%y);
}
三级目录
打印平行四边形
#include <stdio.h>
int main()
{
int x,y;
int i,j,k;
scanf("%d %d",&x,&y);
for(i=1;i<=x;i++)
{
for(k=0;k<x-i;k++)printf(" ");
for(j=0;j<y;j++)
{
if(i==1||i==x||j==0||j==(y-1))
printf("*");
else
printf(" ");
}
printf("\n");
}
}