zoukankan      html  css  js  c++  java
  • 又一版 A+B

    题目描述:

    输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。

    输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
    当m为0时输入结束。

    输出格式:每个测试用例的输出占一行,输出A+B的m进制数。

    样例输入:

    2 4 5
    8 123 456
    0

    样例输出:

    1001
    1103

    提示:

    注意输入的两个数相加后的结果可能会超过int和long的范围。

    思路:使用除k取余法

    #include<iostream>
    using namespace std;
    int main(){
        int A,B;
        int m;
        long long sum;
        int num[32];
        while(cin>>m){
            int count=0;
            if(m!=0){
                cin>>A>>B;
                sum=A+B;
                for(int i=0;i<32;i++){
                    if(sum!=0){
                        num[i]=sum%m;
                        sum=sum/m;
                        count++;    
                    }
                    else{
                        break;
                    }
                    
                }
            }
            else if(m==0){
                exit(0);
            }
            //cout<<count<<endl;
            for(int i=count-1;i>=0;i--){
                cout<<num[i];
            }
            cout<<endl;
        }
        return 0;
    } 
    结果:

     错误:

    1.当遇到边界条件,例如A=0,B=0,此时无法输出结果,因此需要设置这个条件单独判断,当A==0&&B==0时输出0



  • 相关阅读:
    自动化测试先关
    hadoop集群(第二节机器信息分布表)
    hadoop集群(第一节)
    SpringCloud微服务架构学习笔记
    SpringBoot启动一个项目
    VUE框架介绍
    SpringMVC配置与使用
    Spring学习笔记(二)
    8、XML与JSON
    7、主页面访问权限控制
  • 原文地址:https://www.cnblogs.com/ak918xp/p/13395210.html
Copyright © 2011-2022 走看看