在bash中查找余数



编解码问题:

写一个程序求整数a除以整数b的余数

输入

第一行包含一个整数T,测试用例的总数。然后是T行,每行包含两个整数A和b。

输出对于每个测试用例,找出A除以B时的余数,并将其显示在新行中。

  • 1≤T≤1000
  • 1≤a, b≤10000

这是我的解决方案。它与样本数工作,但当我提交它失败的测试。我很确定代码是正确的。问题是什么呢?

#!/bin/bash
read T
var0=0
while [[ "$var0" < "$T" ]]
do
read A B
echo $(( A % B ))
(( var0++ ))
done

您的代码在这里没有解释的特定条件下工作良好。我复制了它,将其保存到rem.bash中,更改了权限使其可执行,然后运行它。下面是会话结果:

$ rem.bash
3
1 3
1
2 3
2
4 3
1

前3是运行该操作的次数。然后我输入:13。余数输出为1。在第三次迭代中,我输入:4 3。余数是1。循环退出,程序终止。

要使它适用于所有输入,将while行更改为

while ((var0 < t))

在bash算术中,((和))之间的东西,您不需要$来解引用变量。也可以使用标准的关系运算符。

相关内容

  • 没有找到相关文章

最新更新