第12周OJ练习-3

来源:互联网 发布:微分方程数值解 编程 编辑:程序博客网 时间:2024/05/23 21:39

问题及代码

/*作者:贾如杉题目描述输入一个十进制数N,将它转换成R进制数输出。输入输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。输出为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。*/#include <stdio.h>void Turn();int main(){    int num,turn;    while(scanf("%d%d",&num,&turn)!=EOF)  {    if(num==0)    {        printf("0");    }        else{ if(num<0)    {        printf("-");        num=-num;    }    Turn(num,turn);  }  printf("\n");  }  return 0;}void Turn(int num,int turn){    if(num==0)    {        return;    }    Turn(num/turn,turn);    if((num%turn)<10)    {        printf("%d",num%turn);    }    else    {        switch(num%turn)        {        case 10:        {printf("A"); break;}        case 11:        {printf("B"); break;}        case 12:        {printf("C"); break;}        case 13:        {printf("D"); break;}        case 14:        {printf("E"); break;}        case 15:        {printf("F"); break;}        }        return;    }}

运行结果

知识点总结

 递归的练习,提高逻辑能力

学习心得

仍然是递归的练习,但比以前的稍微难一些

0 0
原创粉丝点击