用shell写的小程序

来源:互联网 发布:黑客也是程序员 编辑:程序博客网 时间:2024/05/21 11:35
给出一个数,求出等于这个数的所有数的和,不重复。如5:(1,4 ) (2,3)

#!/bin/bash

# go(sum, fix_num, result)
function go()
{
    if [ `expr $1 - $2` -le $2 ]; then
    echo "$3 $1"
    return 0;
    fi
   
    go `expr $1 - $2` `expr $2 + 1` "$3 $2";
   
    go $1 `expr $2 + 1` "$3";
}

if [ $# -ne 1 ]; then
    echo "Usage: $0 sum"
    exit -1
fi

target=$1
cur=1
while [ `expr $target - $cur` -gt $cur ]; do
    go `expr $target - $cur` `expr 1 + $cur` "Result: $cur"
    let "cur=$cur+1"
done
原创粉丝点击