LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: KornLee

考考你:1到999999999的阵列,如何用shell实现?

[复制链接]
 楼主| 发表于 2004-5-14 23:51:54 | 显示全部楼层
最初由 seablue 发表
exp这个东东我还真没见过,:thank all of you!

如果进一步要求每行的值右边对齐的话,该如何实现呢?

我的系统上也没有exp 右对齐跟你用的perl脚本相似~
printf "%11.f\n"
 楼主| 发表于 2004-5-14 23:53:08 | 显示全部楼层
最初由 KanKer 发表
呵呵,挨个运行了一下,族长的代码最慢

呵呵,能写出来我就已经很勉强了 ;)
发表于 2004-5-15 04:46:17 | 显示全部楼层
javalee兄你太谦虚了.
发表于 2004-5-15 09:19:25 | 显示全部楼层
嗯,其实效率问题涉及到具体工具的应用,我们关键要看它的算法。
ps:javalee老大最近很热心的说
发表于 2005-2-22 12:30:07 | 显示全部楼层
发错地方
回复 支持 反对

使用道具 举报

发表于 2010-4-30 15:10:58 | 显示全部楼层
for i in $(seq 9)
do
    j=$i
    echo -n $i
    sum=$i
    for k in $(seq 8)
    do
        echo -n "+$j$i"
        j=$j$i
        sum=$(($sum+$j))
    done
    echo "=$sum"
done
回复 支持 反对

使用道具 举报

发表于 2010-5-20 16:08:33 | 显示全部楼层
Post by yongjian;628134
  1. #!/bin/sh
  2. exp=""
  3. for j in $(seq 9); do
  4.         i=$j
  5.         for k in $(seq 9);do
  6.                 j="$j"$i
  7.                 exp=$exp"$j+"
  8.         done
  9.         exp=$i"+"${exp%+*+}
  10.         echo "${exp} = "$(($exp))
  11.         exp=""
  12. done
复制代码

崇拜~~~~ ,真精彩!!~~~
回复 支持 反对

使用道具 举报

发表于 2010-5-20 16:09:35 | 显示全部楼层
Post by home_king;628373

  1. BEGIN{
  2.         FS=""
  3. }
  4. {
  5.         for(i=1;i<=NF;i++) {
  6.                 pre=$i
  7.                 sum[$i]=$i
  8.                 printf("%d",pre)
  9.                 for(j=1;j<9;j++) {
  10.                         cur=pre*10+$i
  11.                         sum[$i]+=cur
  12.                         pre=cur
  13.                         printf("+%d",cur)       
  14.                         if(j==8) printf("=%d\n",sum[$i])
  15.                 }
  16.         }
  17. }
复制代码

echo "123456789" | awk -f awkscript


真精彩!!~~~
回复 支持 反对

使用道具 举报

发表于 2010-6-5 14:51:55 | 显示全部楼层
Post by KornLee;628313
我也写了一个 ,望大家指教:thank

  1. /home/lee#cat _test
  2. #!/bin/ksh
  3. n=1;while ((n<=9));do
  4.         m=0;p=0
  5.         while ((m<=8));do
  6.                 a=$(echo "$n*10^$m"|bc);((p+=a));
  7.                 echo -n "$p+";((m+=1))
  8.         done|sed 's/+$/\
  9. /'
  10.         ((n+=1))
  11. done|while read i;do
  12.         echo -n "$i=";echo $i|bc
  13. done
复制代码


==>没看懂,哪位高人帮我解释解释
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表