UVA10494-如果我们返回童年

本文针对除法运算中遇到的特殊情况进行了详细的分析与处理,特别是当被除数为0的情况,并提供了一段完整的C++实现代码,包括输入字符串形式的除数和被除数,输出商和余数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此题主要是卡在当被除数是0 的特殊情况,综合分析还是自己考虑不够全面!!!

其他的就是别忘了对v进行初始化。


#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main ()
{
    string s, t, r;
    char c;
    long long int u = 0;
    long long int v = 0;
    while(cin>>s>>c>>t)
    {
        if(s[0]=='0'){cout<<0<<endl;continue;}
        v = 0; u = 0;r.erase();
        for(int i = 0; i < (int)t.size(); i++)
        {
            u += pow(10,i) * (t[t.size()-i-1]-'0');
        }
        //cout<<u<<endl;
        for(int j =0; j < (int)t.size(); j++)
        {
            v += pow(10,j) * (s[t.size()-j-1]-'0');
        }
        //cout<<v<<endl;
        for(int i = 0; i <= (int)s.size()-(int)t.size(); i++)
        {
            r += v / u + '0';
            //cout<<r<<endl;
            //cout<<v<<" "<<u<<endl;
            if(i<(int)s.size()-(int)t.size())
            v=(v%u)*10+(s[t.size()+i]-'0');
        }
        //cout<<c<<endl;cout<<r.size()<<endl;
        if( c == '/')
        {
            int flag = 0;
            for(int i = 0; i < (int)r.size(); i++)
            {
                if(r[i]!='0')
                {
                   cout<<r[i];
                    flag = 1;
                }
                else
                {
                    if(flag)  cout<<0;
                }
            }
            cout<<endl;
        }
        if( c == '%')
        {
            cout<<v%u<<endl;
        }
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值