LeetCode 504. 七進位制數(C、C++、python)
阿新 • • 發佈:2018-12-12
給定一個整數,將其轉化為7進位制,並以字串形式輸出。
示例 1:
輸入: 100 輸出: "202"
示例 2:
輸入: -7 輸出: "-10"
注意: 輸入範圍是 [-1e7, 1e7] 。
C
char* convertToBase7(int num) { int temp=abs(num); char* res=(char*)malloc(sizeof(char)*11); int i; int count=0; char t; while(temp) { i=temp%7; res[count]=i+'0'; count++; temp/=7; } for(i=0;i<count/2;i++) { t=res[i]; res[i]=res[count-i-1]; res[count-i-1]=t; } if(num==0) { return "0"; } else if(num>0) { res[count]='\0'; return res; } else { for(i=count-1;i>=0;i--) { res[i+1]=res[i]; } res[0]='-'; res[count+1]='\0'; return res; } }
C++
class Solution { public: string convertToBase7(int num) { string res; int i; int temp=abs(num); while(temp) { i=temp%7; res.push_back(i+'0'); temp/=7; } reverse(res.begin(),res.end()); if(num>0) { return res; } else if(num==0) { return "0"; } else { string rr="-"; rr.append(res); return rr; } } };
python 法一
class Solution: def convertToBase7(self, num): """ :type num: int :rtype: str """ temp=abs(num) res=[] while temp: i=temp%7 res.append(str(i)) temp//=7 res=list(reversed(res)) res=''.join(res) if num==0: return '0' elif num>0: return res else: return '-'+res
python 法二
class Solution:
def convertToBase7(self, num):
"""
:type num: int
:rtype: str
"""
temp=abs(num)
res=str()
while temp:
i=temp%7
res+=str(i);
temp//=7;
res=res[::-1]
if num==0:
return '0'
elif num>0:
return res
else:
return '-'+res