外星人的语言--pat习题
本帖最后由 l不败 于 2017-10-6 19:38 编辑#include<stdio.h>
char one2one(int n)
{
if (n <= 9)
return n + '0';
else return (n - 10 + 'A');
}
void trans(int input, int r)
{
if (input>0)
{
trans(input / r, r);
printf("%c", one2one(input%r));
input = input / r;
}
}
int main()
{
int input, r;
while (~scanf("%d%d", &input, &r))
{
trans(input, r);
printf("\n");
}
}//这段程序正常打出,
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
using namespace std;
int main()
{
int n, r;
while (cin >> n >> r && (n&r) != EOF)
{
while (n != 0)
{
if (n%r == 0)
cout << 0;
else if (n%r <= 9)
cout << (n%r);
else if (n%r == 10)
cout << 'A';
else if (n%r == 11)
cout << 'B';
else if (n%r == 12)
cout << 'C';
else if (n%r == 13)
cout << 'D';
else if (n%r == 14)
cout << 'E';
else if (n%r == 15)
cout << 'F';
n = n / r;
}
}
cout << endl;
return 0;
}//这段程序,如果输入和上个程序相同的数据,输出的结果,所有的数字都是相反的。
有木有大神指导,这是为什么呢?麻烦不吝赐教
{:10_277:} emmmm,看不懂 看看 做进制转换,对吧,问题很简单,用一个stack(栈)记录答案,保存至栈顶
最后从栈底到栈顶一个一个输出即可
因为十进制到x进制的转换是会用到栈的 楼主人呢? 领币学习
页:
[1]