题目链接:点击查看
题目描述:
给定一个十进制整数,求它在七进制下的表示。
输入输出:
输入: 100 输出: "202"
输入: -7 输出: "-10"
题目分析:
本题主要考察进制之间的相互转换,十进制转N进制的原理为原数除N取余,再将得到的商除N取余,........直至商为0,再将余数逆序输出(有点辗转相除的味道)。且如果输出是数字类型而非字符串,需要考虑是否会超出整数上下界。
代码:
string convertToBase7(int num)
{
if(num==0)
return "0";
bool is_negative=num<0;//判断是否为负数
if(is_negative)
num=-num;
string ans;
while(num)
{
int a=num/7,b=num%7;
ans=to_string(b)+ans;//注意此处为to_string(b)+ans 而不是ans+to_string(b) 前者相当于逆序 后者为顺序
num=a;
}
return is_negative?"-"+ans:ans;
}