B1022. D进制的A+B

除基取余法

#include<bits/stdc++.h>
using namespace std;
stack<int> s;
int main(){
    long long a,b;
    int d;
    cin>>a>>b>>d;
    long c=a+b;
    while(c>0){
        s.push(c%d);
        c=c/d;
    }
    while(!s.empty()){
        cout<<s.top();
        s.pop();
    }
    return 0;
}

上述得分18/20,这是因为没考虑全。比如a+b=0的情况,它应该输出0。而我们的程序不会输出。

#include<bits/stdc++.h>
using namespace std;
stack<int> s;
int main(){
    long long a,b;
    int d;
    cin>>a>>b>>d;
    long c=a+b;
    if(c==0){cout<<0;return 0;}
    while(c>0){
        s.push(c%d);
        c=c/d;
    }
    while(!s.empty()){
        cout<<s.top();
        s.pop();
    }
    return 0;
}
posted @   MarkKobs  阅读(268)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示