前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【PAT乙级】D进制的A + B

【PAT乙级】D进制的A + B

作者头像
喜欢ctrl的cxk
发布2019-11-08 16:22:20
2700
发布2019-11-08 16:22:20
举报
文章被收录于专栏:Don的成长史Don的成长史

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42449444/article/details/84865737

题目描述:

输入描述:

输入在一行中依次给出3个整数A,B和D.

输出描述:

输出A + B的D进制数。

输入样例:

代码语言:javascript
复制
123 456 8

输出样例:

代码语言:javascript
复制
1103

解题思路:

首先,这道题看上去很简单,但是用代码实现起来发现有点难受啊。幸亏数据结构没白学,我用了一个堆栈。先令C = A + B如果C等于0,就直接输出0,否则对C进行进制转换。这道题主要考察的应该就是将十进制的C转换成D进制。先把C对D的余数推入栈中,然后C除以D的值赋给C,最后根据堆栈“后进先出”的规则输出C对D的余数,也就得到了D进制下的C。

AC代码:

代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int a,b,d;
    cin >> a >> b >> d;
    stack<int> s;
    int c = a+b;
    if(c == 0)
    {
        cout << 0;
    }
    while(c!=0)
    {
        s.push(c%d);
        c /= d;
    }
    while(!s.empty())
    {
        cout << s.top();
        s.pop();
    }
    return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述:
  • 输入描述:
  • 输出描述:
  • 输入样例:
  • 输出样例:
  • 解题思路:
  • AC代码:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档