Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1723595
  • 博文数量: 171
  • 博客积分: 11553
  • 博客等级: 上将
  • 技术积分: 3986
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-25 20:28
文章分类

全部博文(171)

文章存档

2012年(2)

2011年(70)

2010年(9)

2009年(14)

2008年(76)

分类: Python/Ruby

2011-08-01 22:55:25

#!/bin/bash
#题目:输入两个正整数m和n,求其最大公约数和最小公倍数。    
#1.程序分析:利用辗除法。

read num1 num2

if (( num1 < num2 ))
then
    tmp=$num1
num1=$num2
num2=$tmp
fi

a=$num1
b=$num2

while (( $b != 0 ));do
    tmp=$(($a%$b))
a=$b
b=$tmp
done

echo $a
echo $(($num1*$num2/a))

#!/bin/bash
#【程序17】
#题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
#1.程序分析:利用while语句,条件为输入的字符不为'\n'.
#      
#2.程序源代码:

read line

letters=0
spaces=0
digits=0
others=0

for c in `seq 0 $((${#line}-1))`;do
    letter=${line:$c:1}
case "$letter" in
[[:alpha:]] ) 
   (( letters++ )) 
;;
[0-9] ) 
   ((digits++ )) 
;;
[[:space:]] ) 
   (( spaces++ )) 
;;
* ) 
   (( others++ )) 
;;
esac
done

echo "letters = $letters digits = $digits \
      spaces = $spaces others = $others"

#!/bin/bash
#题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时
#   共有5个数相加),几个数相加有键盘控制。
#1.程序分析:关键是计算出每一项的值。
#2.程序源代码:

Tn=0
Sn=()

read n a

sum=0

for count in `seq 0 $(($n-1))`;do
    (( Tn += $a ))
(( a  *= 10 ))
Sn[$count]=$Tn
echo "Sn = ${Sn[$count]}"
(( sum += ${Sn[$count]} ))
done

echo "Sum = $sum"


#!/bin/bash
##set -x
#【程序19】
#题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
#   找出1000以内的所有完数。
#1. 程序分析:请参照程序<--上页程序14. 
#2.程序源代码:

index=0
for j in {2..1000};do
    k=()
n=-1
s=$j

for i in `seq 1 $(($j - 1 ))`;do
   if (( $j % $i == 0 ));then
   (( n += 1 ))
(( s -= i))
(( index ++ ))
k[$n]=$i
fi
done

if [ $s -eq 0 ];then
   echo -n "$j = "
for i in `seq 0 $(( $n - 1))`;do
   echo -n "${k[$i]}+"
done
echo ${k[$n]}
fi
done

#!/bin/bash
#【程序20】
#题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
#   第10次落地时,共经过多少米?第10次反弹多高?
#1.程序分析:见下面注释
#2.程序源代码:

Sn=100
Hn=$(( $Sn / 2 ))

for n in {2..10};do
Sn=`echo "$Sn + 2* $Hn" | bc -l`
Hn=`echo "$Hn/2" | bc -l`
done


echo "Totoal of road is $Sn"
echo "The tenth is $Hn meter"
阅读(731) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~