PTA | 1017 A除以B

262 阅读1分钟

PTA | 程序设计类实验辅助教学平台 (pintia.cn)

用字符串读取,然后先求第一位的商和余数,求出来的商和余数做一个合法性判断,如何合法就用商*10再加上下一位继续求商和余数。

合法性判断

首先要保证至少输入一个数字,或者一个数字往上,这样才能计算。

其次还要判断商是否为0,商为0的情况就是除数比被除数大,比如3/4,那么就不能满足题目要求的 A=B×Q+RA=B×Q+R ,属于非法情况。

image.png

二刷

#include<iostream>
using namespace std;

int main()
{
   string A;int B;cin>>A>>B;
    int Q,R;
    //先求第一位余数和商
     Q=(A[0]-'0')/B;
     R=(A[0]-'0')%B;


    
      if(A.size()==1||(A.size()>1&&Q!=0))
    cout<<Q;
    //求其他位的商和余数

    
    for(int i=1;i<A.size();i++)
    {
        //下一个余数
         Q=(R*10+A[i]-'0')/B; cout<<Q;
        //下一个商
        R=(R*10+A[i]-'0')%B;
    }
    cout<<" "<<R;
    return 0;
}