[英]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<=$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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.