hd 1887 Weird Numbers
来源:互联网 发布:汇编语言转c语言 编辑:程序博客网 时间:2024/04/28 22:09
负进制的转换,用短除法.负进制r,当余数d<0时, d+r, 商s++;
#include <iostream>
#include <string>
#include <stack>
#include <vector>
#include <map>
using namespace std;
void change(int n, int r)
{
int y, s, t;
stack<int> st;
while (n)
{
y = n % r;
s = n / r;
if(y < 0)
{
y += -r;
s++;
}
n = s;
st.push(y);
}
bool f = false;
while (!st.empty())
{
t = st.top();
st.pop();
if(t == 0 && !f)
continue;
else
{
cout << t;
f = true;
}
}
if(!f)
cout << "0";
cout << endl;
}
int change2(string s, int r)
{
int i, sum = 0;
int t = 1;
for (i=s.size()-1; i>=0; --i)
{
sum += (s[i]-'0')*t;
t *= r;
}
return sum;
}
int main()
{
char c, c1;
int n, r;
string s;
while ( c = getchar())
{
if(c == 'e')
{
getchar();
getchar();
break;
}
else if(c == 't')
{
getchar();
getchar();
c = getchar();
c1 = getchar();
if(c1 == ' ')
{
r = (c-'0');
}
else
{
r = (c-'0')*10 + (c1-'0');
}
cin >> n;
getchar();
change(n, -r);
}
else if(c == 'f')
{
getchar();
getchar();
getchar();
getchar();
c = getchar();
c1 = getchar();
if(c1 == ' ')
{
r = (c-'0');
}
else
{
r = (c-'0')*10 + (c1-'0');
getchar();
}
cin >> s;
getchar();
cout << change2(s, -r) << endl;
}
}
return 0;
}
#include <string>
#include <stack>
#include <vector>
#include <map>
using namespace std;
void change(int n, int r)
{
int y, s, t;
stack<int> st;
while (n)
{
y = n % r;
s = n / r;
if(y < 0)
{
y += -r;
s++;
}
n = s;
st.push(y);
}
bool f = false;
while (!st.empty())
{
t = st.top();
st.pop();
if(t == 0 && !f)
continue;
else
{
cout << t;
f = true;
}
}
if(!f)
cout << "0";
cout << endl;
}
int change2(string s, int r)
{
int i, sum = 0;
int t = 1;
for (i=s.size()-1; i>=0; --i)
{
sum += (s[i]-'0')*t;
t *= r;
}
return sum;
}
int main()
{
char c, c1;
int n, r;
string s;
while ( c = getchar())
{
if(c == 'e')
{
getchar();
getchar();
break;
}
else if(c == 't')
{
getchar();
getchar();
c = getchar();
c1 = getchar();
if(c1 == ' ')
{
r = (c-'0');
}
else
{
r = (c-'0')*10 + (c1-'0');
}
cin >> n;
getchar();
change(n, -r);
}
else if(c == 'f')
{
getchar();
getchar();
getchar();
getchar();
c = getchar();
c1 = getchar();
if(c1 == ' ')
{
r = (c-'0');
}
else
{
r = (c-'0')*10 + (c1-'0');
getchar();
}
cin >> s;
getchar();
cout << change2(s, -r) << endl;
}
}
return 0;
}
- hd 1887 Weird Numbers
- hoj 11170 Weird Numbers
- 进制转换--Weird Numbers
- weird
- 1408202044-hd-How many prime numbers.cpp
- Weird Events
- Weird Clock
- Weird Clock
- Weird Cryptography
- Weird Rounding
- Weird Rounding
- HD 1058 Humber Numbers。本地都通过了最终还是WA了,莫名其妙
- zoj 1476 Weird Clock
- Weird, but OK
- UVA 11983 Weird Advertisement
- weird xmlrootelement problem
- HDU 1393 Weird Clock
- HDU1393:Weird Clock
- JavaScript中常用的一百零七条语句
- IBM 软件资讯:手机免费上Notes,轻松好礼等你拿!
- C# 日期格式转换
- 100句话浓缩100部名著
- 常用排序
- hd 1887 Weird Numbers
- 常用数据库JDBC连接写法
- 搞笑歇后语集合
- C#日期格式转换大全
- installshield 12较6.0生成MS SQL数据库策略
- 经典代码总结(译)
- 如何简单有效关闭Oracle死锁进程
- 串操作指令
- vc++中HBRUSH的几种用法