14# Modular Calculator 余数计算

文章目录

问题描述

输入:
初始数在第一行
从第二行开始为“+”或“*”符号加一个数
最后一行为“%”和一个整数,为对该整数取余数
输出:
给出通过初始数按顺序进行符号运算后对最后一行整数取余数的值
例:

input data:
5
+ 3
* 7
+ 10
* 2
* 3
+ 1
% 11

answer:

代码

python方法

initial = int(input())
sign = ''
number = 0
total = initial
while true:
    [sign, number] = list(map(str,input().split()))
    if sign == '+':
        total = total + int(number)
    elif sign == '*':
        total = total * int(number)
    elif sign == '%':
        total = total % int(number)
        break
print(total)

建立如下ui
在这里插入图片描述
代码如下

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim inputNum As Integer
        Dim array1() As String
        Dim array2() As String
        Dim linesNum As Integer
        Dim result As Integer
        inputNum = Val(TextBox1.Lines(0))
        linesNum = TextBox1.Lines.GetUpperBound(0)
        array1 = Split(Trim(TextBox1.Lines(linesNum)))
        result = inputNum
        Dim modNum As Integer
        modNum = Val(array1(1))
        For i As Integer = 1 To linesNum - 1
            array2 = Split(Trim(TextBox1.Lines(i)))
            Select Case array2(0)
                Case "+"
                    result += Val(array2(1))
                Case "*"
                    result = result Mod modNum
                    result *= Val(array2(1))
            End Select
        Next i
        result = result Mod modNum
        TextBox2.Text = Str(result)
    End Sub
End Class

核心问题在于当数字过大时,如最后的取余数为1.718 x 10^47 % 9833时,尽管有些语言可以使数取任意长度,主要思路是在中间计算过程中取余数来减小数如

(10 + 10) * 7 % 11 = 8

你可以先计算(10+10)%11得9,再7*9得到63取余得到8有相同的结果,得到的思路是在进行乘法结果前可以使用取余数来减小数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值