邱李笔试题shell脚本:
请详细查看如下几个数字的规律,并使用shell脚本输出后面的十个数字。
10 31 53 77 105 141 .......
试题解析:
我想大多数人都会去比较这些数字的差值:
10 31 53 77 105 141
21 22 24 28 36
但是这个差值看,并没有什么规律,而我们再仔细看的时候,发现这个差值的差值是有规律的:
10 31 53 77 105 141
21 22 24 28 36
1 2 4 8
所以,最终得出规律
shell脚本如下:{{{密码回复可见}}}
请详细查看如下几个数字的规律,并使用shell脚本输出后面的十个数字。
10 31 53 77 105 141 .......
试题解析:
我想大多数人都会去比较这些数字的差值:
10 31 53 77 105 141
21 22 24 28 36
但是这个差值看,并没有什么规律,而我们再仔细看的时候,发现这个差值的差值是有规律的:
10 31 53 77 105 141
21 22 24 28 36
1 2 4 8
所以,最终得出规律
shell脚本如下:{{{密码回复可见}}}
0
#!/bin/bash
x=1
y=21
z=10
for i in `seq 1 16`
do
echo -n -e "$z\t"
z=$(($z+$y))
y=$(($y+$x))
x=$(($x*2))
done
echo
x=1
y=21
z=10
for i in `seq 1 16`
do
echo -n -e "$z\t"
z=$(($z+$y))
y=$(($y+$x))
x=$(($x*2))
done
echo
0
#! /bin/sh
x=21
m=10
echo $m
for i in `seq 1 10`; do
k=$[$i-1]
j=$[2**$k]
m=$[$m+$x]
echo $m
x=$[$x+$j]
done
# 答案里好像有上错误吧,2的0次方没有算,有点错位了!
x=21
m=10
echo $m
for i in `seq 1 10`; do
k=$[$i-1]
j=$[2**$k]
m=$[$m+$x]
echo $m
x=$[$x+$j]
done
# 答案里好像有上错误吧,2的0次方没有算,有点错位了!
0
- #!/bin/bash
- i=8 j=36 k=141
- for a in `seq 1 10`;do
- i=$[2*$i];
- j=$[$j+$i];
- k=$[$k+$j];
- echo $k;
- done
0
本帖最后由 幻夜猫儿 于 2016-8-29 15:09 编辑
- #!/bin/bash
- a=10
- for i in `seq 0 14`;
- do
- echo $a
- j=$[ 2**$i ]
- $a=$[ $a+20+$j ]
- done
0
- #! /bin/bash
- for ((i=0,j=0;i<11;i++))
- do
- arr[j]=$[ 2**$i]
- let "j++"
- done
- #echo ${arr[@]}
- arrb[0]=21
- for ((j=1,i=0;j<11;j++))
- do
- let " arrb[j]=arrb[j-1]+arr[i] "
- # echo "arr: ${arr[@]} "
- let "i++"
- done
- #echo ${arrb[@]}
- #同样的方法求arrc
- arrc[0]=10
- for ((j=1,i=0;j<11;j++))
- do
- let "arrc[j]=arrc[j-1]+arrb[i]"
- let "i++"
- done
- echo ${arrc[@]}
0
本帖最后由 liuyunge 于 2016-9-8 23:38 编辑
#!/bin/bash
##written by 20160908
sum=141
m=36
n=8
for i in {1..10};do
sum=$(expr "$sum" + "$m" + "$n")
m=$(expr "$m" + "$n")
n=$(expr "$n" \* "2")
echo "$sum"
done
#!/bin/bash
##written by 20160908
sum=141
m=36
n=8
for i in {1..10};do
sum=$(expr "$sum" + "$m" + "$n")
m=$(expr "$m" + "$n")
n=$(expr "$n" \* "2")
echo "$sum"
done
0
!/bin/bash
Description: This script is to check system disk info.
Author: Jiazhi Yang
Date: 20/11/2016
Script Name: count.sh
a=10
b=21
for i in seq 0 8
do
c=$((2**$i))
a=$(($a+$b))
b=$(($c+$b))
echo $a
done
编辑回复