编解码问题:
写一个程序求整数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算术中,((和))之间的东西,您不需要$来解引用变量。也可以使用标准的关系运算符。