我們撰寫了一個命令,它通過標準輸入接收一個數字 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
我們需要用代碼改變 (...) 才能得到答案。
uj5u.com熱心網友回復:
像這樣的東西。我正在使用 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/321752.html
