您的位置:首页 > 其它

sicily--1298. 数制转换

2012-07-13 13:18 246 查看
整体来说不难,就是在求余以后得到余数为2跟-2的情况需要特殊处理一下;一开始忘记了考虑有负数的情况,所以没有考虑到-2的变化

#include<iostream>
#include<string>
#include<vector>
using namespace std;

int main()
{
int userNum;//the input number

while(cin >> userNum)
{
string outputNum = "";//the output string
if(userNum == 0)
{
cout << "0" << endl;
}//end if
else
{
int remainder = 0;//余数
int quotient = 0;//商
while(userNum != 0)
{
remainder = userNum % 3;
quotient = userNum / 3;
switch(remainder)
{
case 0:
userNum = quotient;
outputNum.push_back('0');
break;
case 1:
userNum = quotient;
outputNum.push_back('1');
break;
case 2:
userNum = quotient + 1;
outputNum.push_back('-');
break;
case -1:
userNum = quotient;
outputNum.push_back('-');
break;
case -2:
userNum = quotient - 1;
outputNum.push_back('1');
break;
}//end switch
}
for(int i = outputNum.length() - 1; i >= 0; i--)
{
cout << outputNum[i];
}
cout << endl;
}//end else

}//end while

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: