命令查找unix,linux



我们写了一个命令,通过stdin接受一个数字n。该命令必须将数字写入通过写入数字1、2、3....得到的标准输出中,连续n个,在任意两个连续数字之间交替使用-(减法)和+(加法)运算,计算得到的表达式。当n = 12时,我们得到:1-2+3-4+5-6+7-8+9-1+0-1+1-1+2 = 5

$ echo 12 | ...
5
$ echo 82 | ...
14

我们需要用代码改变(…)来得到答案。

就像这样。我用busyboxawk来完成这个任务。

示例1:

echo 12 | awk '{ for(i=1;i<=$0;++i) { len=split(i,nums,""); for(j=1;j<=len;++j) arr[++n]=nums[j] }} END { for(i=1;i<=n;++i) if(i%2==0) { r-=arr[i]} else { r+=arr[i] } print r }'

输出:

5

示例2:

echo 82 | awk '{ for(i=1;i<=$0;++i) { len=split(i,nums,""); for(j=1;j<=len;++j) arr[++n]=nums[j] }} END { for(i=1;i<=n;++i) if(i%2==0) { r-=arr[i]} else { r+=arr[i] } print r }'

输出:

19

最新更新