l不败 发表于 2017-10-4 17:21:28

外星人的语言--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;
}//这段程序,如果输入和上个程序相同的数据,输出的结果,所有的数字都是相反的。
有木有大神指导,这是为什么呢?麻烦不吝赐教

小小小菜菜菜 发表于 2018-12-20 13:12:27

{:10_277:}

X用户 发表于 2018-12-22 08:49:19

emmmm,看不懂

扩展阅读 发表于 2018-12-24 11:41:59

看看

zhangjinxuan 发表于 2022-8-17 16:05:45

做进制转换,对吧,问题很简单,用一个stack(栈)记录答案,保存至栈顶
最后从栈底到栈顶一个一个输出即可
因为十进制到x进制的转换是会用到栈的

zhangjinxuan 发表于 2022-11-10 21:01:52

楼主人呢?

hellometa 发表于 2022-11-14 09:25:35

领币学习
页: [1]
查看完整版本: 外星人的语言--pat习题