nyoj 803-A/B Problem

本文详细解析了803-A/BProblem的解题思路,包括问题描述、输入输出格式、样例及解释,并提供了Python和C/C++的代码实现。问题涉及整数除法和取余运算,对于长整数处理有特定技巧。

803-A/B Problem


内存限制:64MB 时间限制:1000ms 特判: No
通过数:2 提交数:4 难度:3

题目描述:

 做了A+B Problem,A/B Problem不是什么问题了吧!

输入描述:

每组测试样例一行,首先一个号码A,中间一个或多个空格,然后一个符号( / 或者 % ),然后又是空格,后面又是一个号码B,A可能会很长,B是一个int范围的数。

输出描述:

输出结果。

样例输入:

复制
110 / 100
99 % 10
2147483647 / 2147483647
2147483646 % 2147483647

样例输出:

1
9
1
2147483646

python   未AC:

try:
    while True:
        a, b, c = input().split()
        a = int(a)
        c = int(c)

        if b == "/":
            print("%d" % (a / c))
        else:
            print("%d" % (a % c))
except EOFError:
    pass

 

C/C++ AC:(引之runbicheng)

#include<stdio.h>
#include<string.h>
char str[1000],ch[5];
int main()
{
    int b,s,i,n,f;
    while(~scanf("%s%s%d",str,&ch,&b))
    {
        s=i=0,f=0;
        n = strlen(str);
        if(*ch=='%')
        {
            for(i=0; i<n; i++)
            {
                s=s*10+str[i]-48;
                s%=b;
            }
            printf("%d\n",s);
        }
        else
        {
            for(i=0; i<n; i++)
            {
                s=s*10+str[i]-48;
                if(s>=b)
                {
                    printf("%d",s/b);
                    f=1;
                }
                else if(f)
                {
                    putchar(48);
                }
                s%=b;
            }
            printf(!f?"0\n":"\n");
        }
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/GetcharZp/p/9354033.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值