Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
帕斯卡';Linux shell脚本中的s三角形_Linux_Bash_Shell_Pascals Triangle - Fatal编程技术网

帕斯卡';Linux shell脚本中的s三角形

帕斯卡';Linux shell脚本中的s三角形,linux,bash,shell,pascals-triangle,Linux,Bash,Shell,Pascals Triangle,我试图编写一个代码,它接收一个整数“n”作为参数,然后从0,1,…,n开始打印Pascal三角形的第n行。 例如,如果条目为3,程序将打印1 3 1。 到目前为止,我写了一个代码来打印整个三角形,但我不能只打印最后一行。 这就是我所拥有的 echo "Insert the row:" read n for((i=0;i<$n;i++)) do eval"a$i=($(w=1;v=1 for((j=0;j<$n-$i;j++)) do

我试图编写一个代码,它接收一个整数“n”作为参数,然后从0,1,…,n开始打印Pascal三角形的第n行。 例如,如果条目为3,程序将打印1 3 1。 到目前为止,我写了一个代码来打印整个三角形,但我不能只打印最后一行。 这就是我所拥有的

echo "Insert the row:" read n for((i=0;i<$n;i++)) 
do      
eval"a$i=($(w=1;v=1
        for((j=0;j<$n-$i;j++))
        do 
            [ $i -eq 0 -o $j -eq 0 ]&&{ v=1 && w=1; }||v=$((w+a$((i-1))[$((j))]))
            echo -n "$v "
            w=$v
        done))"
     eval echo "$(for((k=0;k<=$i;k++)) 
        do 
            eval "echo -n \"\$((a\$((i-k))[k])) \"" 
        done)" 
    done

echo”插入行:“为((i=0;i我找到了该问题的
awk
解决方案:

awk -v line_num=5 'BEGIN{for(i=line_num;i<=line_num;i++){c=1;r=c;for(j=0;j<i;j++){c*=(i-j)/(j+1);r=r" "c};print r}}'

awk-v line_num=5'BEGIN{for(i=line_num;i下面是一个简单的bash脚本,使用simple for、if else和echo命令打印pascal的三角形:

echo "Enter number of rows : "
read rows
coef=1
for((i=0;i<rows;i++))
do
  for((space=1;space<=rows-i; space++))
  do
    echo -n "  "
  done
  for((j=0;j<=i;j++))
  do
    if [ $j -eq 0 -o $i -eq 0 ]
    then
        coef=1;
    else
        coef=$((coef*(i-j+1)/j))
    fi
    echo -n $coef "   "
  done
  echo
done
echo“输入行数:”
读行
系数=1

对于((i=0;ii)如果您只需要最后一行,为什么不使用二项式展开的公式?@ChristopherSchultz否,代码没有按预期工作,因此不适合代码复查
awk -v line_num=5 'BEGIN{for(i=line_num;i<=line_num;i++){c=1;r=c;for(j=0;j<i;j++){c*=(i-j)/(j+1);r=r" "c};print r}}'
echo "Enter number of rows : "
read rows
coef=1
for((i=0;i<rows;i++))
do
  for((space=1;space<=rows-i; space++))
  do
    echo -n "  "
  done
  for((j=0;j<=i;j++))
  do
    if [ $j -eq 0 -o $i -eq 0 ]
    then
        coef=1;
    else
        coef=$((coef*(i-j+1)/j))
    fi
    echo -n $coef "   "
  done
  echo
done