命令查找 unix ,linux
Command find unix ,linux
我们编写了一个通过标准输入获取数字 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
我们需要用代码更改 (...) 才能得到答案。
像这样。我正在使用 busybox awk
来完成这个任务。
例1:
echo 12 | awk '{ for(i=1;i<=[=10=];++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
例二:
echo 82 | awk '{ for(i=1;i<=[=12=];++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
我们编写了一个通过标准输入获取数字 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
我们需要用代码更改 (...) 才能得到答案。
像这样。我正在使用 busybox awk
来完成这个任务。
例1:
echo 12 | awk '{ for(i=1;i<=[=10=];++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
例二:
echo 82 | awk '{ for(i=1;i<=[=12=];++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