【问题标题】:Command find unix ,linux [closed]命令 find unix ,linux [关闭]
【发布时间】:2021-12-05 04:56:27
【问题描述】:

我们编写了一个通过标准输入接收数字 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

我们需要用代码更改 (...) 以获得答案。

【问题讨论】:

    标签: linux unix sh


    【解决方案1】:

    类似的东西。我正在使用busybox awk 来完成这项任务。

    示例 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
    

    【讨论】:

      猜你喜欢
      • 2012-12-28
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 2012-12-09
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多