zhmg23

我们是如此的不同
资深运维工程师互荐群: 102123162

记录Linux下实现1到100的和的几种方法

第一种是用shell for 实现

#!/bin/bash

# 求1加到100的和

sum=0

for ((i=1;i<=100;i++));do

sum=$(($i+$sum))

done

echo $sum


第二种shell for的另外一种方法

#!/bin/bash

# 求1加到100的和

sum=0

for i in {1..100};do

let sum+=$i

done

echo "1+2+..+100:" $sum




第三种是用shell while实现

#!/bin/bash

# 求1+2+3+...+100的和

sum=0

i=1

while [ $i -le 100 ];do

sum=$(($sum+$i))

i=$(($i+1))

done

echo "1-100:" $sum



第四种是用shell until

#!/bin/sh

# 求1+2+3+...+100的和

i=1

until ((i >100 ))

do

  ((j=j+i))

  ((i++))

done

echo "1-100:" $j



第五种:使用shell seq和awk实现

#  seq 100 |awk '{total=total+$1} END {print total}'

5050

# seq 100 |awk '{total+=$1} END {print total}'

5050


第六种: 使用shell中.{}数字列表结合tr、bc方法

# echo {1..100}|tr " " "+"|bc

5050


第七种: 使用shell中.seq结合bc字符计算方法

#  seq -s + 100|bc

5050

#  seq -s "+" 100|bc

5050


第八种:seq xargs sed bc实现

# seq 1 100|xargs|sed 's/ /+/g'|bc

5050


第九种:纯awk实现1到100的和方法

# awk 'BEGIN {for (i=1;i<=100;i++) sum+=i;print sum}'

5050


#!/bin/bash

awk ' BEGIN{

        test = 100;

        totcal=0;

        while(i<=test){

        tocal+=i;

        i++;

}

print   "total = ",tocal;

}'


第十种:python中for来实现

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# 求1+2+3+...+100之和


# 用for实现1+2+3+...+100之和

sum = 0

for x in xrange(1,101):

sum = sum + x

print sum





部分参考: http://oldboy.blog.51cto.com/2561410/767862


评论