wordpress 关站,龙海网络推广,餐饮公司注册流程及费用,服装设计网页一、题目#xff1a; 链接#xff1a; 504. 七进制数 - 力扣#xff08;LeetCode#xff09; 函数原型#xff1a; char* convertToBase7(int num) 二、思路 本题要将十进制数转换为二进制数#xff0c;只要将十进制num数模7再除7#xff0c;直到num等于0 每次将模7的结… 一、题目 链接 504. 七进制数 - 力扣LeetCode 函数原型 char* convertToBase7(int num) 二、思路 本题要将十进制数转换为二进制数只要将十进制num数模7再除7直到num等于0 每次将模7的结果存储到字符串ans中存储完后字符串末尾还要加上 \0 由于是逆序存储因此存储完后需要逆置字符串。 如何将数字转换为字符请看博客字符与数字的相互转换_字符和数字之间的转换-CSDN博客 还需要注意如果num为负数先将其当作正数去转换最后在字符串ans末尾加上字符 ‘-’ 即可。 三、代码 void reserve(char* str)//逆置字符串函数
{int len strlen(str);int left 0;int right len - 1;while (left right){char tmp str[left];str[left] str[right];str[right] tmp;left; right--;}
}char* convertToBase7(int num) {if(num0)//对于num为0的情况直接返回0即可{return 0;}char* ans (char*)calloc(32, sizeof(char));//申请一块空间存放字符串if (ans NULL)//判断是否申请成功{perror(malloc fail);exit(-1);}int i 0;//下标int Num abs(num);//取num的绝对值while (Num 0){ans[i] Num % 7 0;//将num取模的结果存储到字符串ans中Num Num / 7;//num除7}if (num 0)//num为负数{ans[i] -;//需要在字符串末尾加上负号ans[i] \0;//字符串末尾加上结束标志\0}else//num为整数{ans[i] \0;//字符串末尾加上结束标志\0}reserve(ans);//逆置字符串ansreturn ans;//返回ans
}