请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 1991|回复: 78

[技术相关] 使用你所熟悉的程序语言(或脚本)写出这个题 [复制链接]

kuhanzhu 楼主

苦寒竹

管理员

帖子
19767
体力
17922
威望
23
居住地
浙江省 金华市
发表于 2008-8-26 17:20:15 |显示全部楼层
原帖:http://bbs.blueidea.com/thread-2881905-1-1.html

题目:首先把你的生日列出来 比如 1987 12 25
然后一位位的相加 1+9+8+7+1+2+2+5=35
把得出的数字再拆分 再加 3+5=8

最后向屏幕输出:8

19871225可看作字符型也可以看作整型,想怎么看就怎么看,不限。

体裁不限(语法啦,脚本啦),灌水都行,仅供娱乐,奖励没有。

爱好编程的朋友就练练手吧。

[ 本帖最后由 kuhanzhu 于 2008-8-26 17:24 编辑 ]
搞IT的穷秀才。
西部数码顶级域名注册商39元抢注!
cloeft 
帖子
147
体力
2547
威望
0
居住地
北京市 海淀区
发表于 2008-8-26 17:53:02 |显示全部楼层

 提示:您可以先修改部分代码再运行

租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

垃圾青蛙

荣誉管理 手机认证 

帖子
26082
体力
51517
威望
21
居住地
福建省 厦门市
发表于 2008-8-26 17:54:24 |显示全部楼层

 提示:您可以先修改部分代码再运行

新一代四无新人,21世纪低碳男……博客 免费下载易提醒

使用道具 举报

kuhanzhu 楼主

苦寒竹

管理员

帖子
19767
体力
17922
威望
23
居住地
浙江省 金华市
发表于 2008-8-26 18:01:51 |显示全部楼层
我还没写出来,不会JS和VB,在用其他的。
搞IT的穷秀才。

使用道具 举报

ariex 

Dreamlessness

钻石会员

帖子
4960
体力
13275
威望
11
居住地
大洋洲 澳大利亚
发表于 2008-8-26 18:09:34 |显示全部楼层

 提示:您可以先修改部分代码再运行



根据题意,修改下……

[ 本帖最后由 ariex 于 2008-8-26 19:26 编辑 ]

使用道具 举报

布鲁斯狼

荣誉管理

帖子
8064
体力
21537
威望
153
居住地
江苏省 扬州市
发表于 2008-8-26 18:16:32 |显示全部楼层

 提示:您可以先修改部分代码再运行


[ 本帖最后由 cnbruce 于 2008-8-26 21:24 编辑 ]

使用道具 举报

kolou 

死神

银牌会员

帖子
3936
体力
1570
威望
15
居住地
上海市 卢湾区
发表于 2008-8-26 18:29:00 |显示全部楼层
  都暴露了

使用道具 举报

Fanbin 

霜之恋

钻石会员

帖子
4592
体力
5340
威望
5
居住地
欧洲 芬兰
发表于 2008-8-26 18:43:08 |显示全部楼层
还在公交车上,先占位,回家写

使用道具 举报

帖子
1162
体力
2091
威望
47
居住地
安徽省 合肥市
发表于 2008-8-26 18:57:59 |显示全部楼层
原帖由 帅青蛙 于 2008-8-26 17:54 发表



输出的是 10
是否运行两位数字呢?
说真话,说假话,说真话,说假话...

使用道具 举报

垃圾青蛙

荣誉管理 手机认证 

帖子
26082
体力
51517
威望
21
居住地
福建省 厦门市
发表于 2008-8-26 19:05:08 |显示全部楼层

回复 9# 铁板牛排 的帖子

根据题意,小于等于10的话是不用再次进行运算的,只有结果大于10才进行循环计算。
所以我那题应当可以满足要求。
新一代四无新人,21世纪低碳男……博客 免费下载易提醒

使用道具 举报

帖子
1162
体力
2091
威望
47
居住地
安徽省 合肥市
发表于 2008-8-26 19:08:21 |显示全部楼层
原帖由 帅青蛙 于 2008-8-26 19:05 发表
根据题意,小于等于10的话是不用再次进行运算的,只有结果大于10才进行循环计算。
所以我那题应当可以满足要求。

说真话,说假话,说真话,说假话...

使用道具 举报

帖子
1162
体力
2091
威望
47
居住地
安徽省 合肥市
发表于 2008-8-26 19:08:58 |显示全部楼层
原帖由 cnbruce 于 2008-8-26 18:16 发表
...


safari 下 失效
说真话,说假话,说真话,说假话...

使用道具 举报

秋长天

金牌会员 手机认证 

帖子
3043
体力
3057
威望
3
居住地
湖北省 武汉市
发表于 2008-8-26 19:23:32 |显示全部楼层
我不是专业的,不知道这个递归有没有错,反正我没试 
<?php

funciton getre ($num){
        $a = (int)$num;
        if ($a >9){
                //取传进来数学的字符串形式长度
                $s = (string)$num;
                $s_l = strlen($s);
    //将字符串各个字符位的安符以数学形式相加
                for ($i=0;$i<$s_l;$i++){
                        $s_n += (int)$s{$i};
                }
    //递归看看
                $s_n = getre($s_n);
        }else {
                return $a;
        }
}

?>

[ 本帖最后由 ruinsky 于 2008-8-28 15:02 编辑 ]
专带小提琴抢银行!   经典武汉群组欢迎您

使用道具 举报

帖子
77
体力
5
威望
0
发表于 2008-8-26 19:43:23 |显示全部楼层
>>> def foo(num):
...         sam = 0
...         for c in str(num):
...                 sam += int(c)
...         return sam if sam < 10 else foo(sam)
...
>>> foo(19831107)
3


哈哈,python 最简洁。

使用道具 举报

wjeasy 
帖子
2327
体力
2299
威望
3
居住地
山东省 泰安市
发表于 2008-8-26 20:13:59 |显示全部楼层
  1. unit Unit1;

  2. interface

  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, StdCtrls, Mask, RzEdit, RzButton;

  6. type
  7.   TForm1 = class(TForm)
  8.     RzButton1: TRzButton;
  9.     RzEdit1: TRzEdit;
  10.     procedure RzButton1Click(Sender: TObject);
  11.   private
  12.     function sumage(str_age:string):Integer;
  13.   public
  14.     { Public declarations }
  15.   end;

  16. var
  17.   Form1: TForm1;

  18. implementation

  19. {$R *.dfm}

  20. procedure TForm1.RzButton1Click(Sender: TObject);
  21. begin
  22. if rzedit1.Text='' then Exit;
  23. sumage(RzEdit1.Text);
  24. end;

  25. function TForm1.sumage(str_age: string): Integer;
  26. var
  27.   i,sum:Integer;
  28. begin
  29.   sum:=0;
  30.   for i:=1 to Length(str_age) do
  31.   begin
  32.     sum:=sum+strtoint(copy(str_age,i,1));
  33.   end;
  34.   if sum>10 then
  35.     sumage(IntToStr(sum))
  36.   else
  37.     ShowMessage(IntToStr(sum));
  38. end;

  39. end.
复制代码
我的签名被liuxinghonglei 清空了,杯具啊~~

使用道具 举报

Fanbin 

霜之恋

钻石会员

帖子
4592
体力
5340
威望
5
居住地
欧洲 芬兰
发表于 2008-8-26 20:20:20 |显示全部楼层

PHP 字符串方式,递归,可以算任意正整数

  1. <?php
  2. function bird($number) {
  3.         $number = ''.$number;
  4.         $length = strlen($number);
  5.         $result = 0;
  6.         for($i = 0; $i < $length; $i++) {
  7.                 $result += $number{$i};
  8.         }
  9.         if($result >=10) {
  10.                 bird($result);
  11.         } else {
  12.                 echo $result;
  13.         }
  14. }

  15. bird('18400221');
  16. ?>
复制代码

使用道具 举报

Fanbin 

霜之恋

钻石会员

帖子
4592
体力
5340
威望
5
居住地
欧洲 芬兰
发表于 2008-8-26 20:36:19 |显示全部楼层

改了一下成了JS版的

看起来还是像PHP

 提示:您可以先修改部分代码再运行

使用道具 举报

我不是科恩

金牌会员

帖子
2194
体力
3691
威望
6
发表于 2008-8-26 20:49:38 |显示全部楼层
string ADD(string p_str)
{
    //如果长度不为1,递归调用自己,直到符合要求
    if(p_str.Length>1)
    {
        MessageBox.show(p_str);
    }
    else
    {
        int t_result = 0;
        for(int i=0;i<p_str.Length;i++)
        {
             t_result = t_result + Convert.ToInt(p_str);
        }
        //递归调用
        ADD(t_result.ToString());
    }
}

使用道具 举报

小韩

荣誉管理 手机认证 

帖子
3891
体力
8327
威望
12
发表于 2008-8-26 21:09:31 |显示全部楼层
召唤brainfuck语言达人

使用道具 举报

Missx 

愚者

荣誉管理 手机认证 

帖子
5125
体力
11946
威望
36
居住地
山东省 济南市
发表于 2008-8-26 21:15:12 |显示全部楼层
回忆我的生日
按照楼主的要求加起来
得到了结果...

思维语言...
找靠谱的人才?快来蓝色理想招聘

使用道具 举报

kuhanzhu 楼主

苦寒竹

管理员

帖子
19767
体力
17922
威望
23
居住地
浙江省 金华市
发表于 2008-8-26 21:33:58 |显示全部楼层

回复 20# Missx 的帖子

如果能打负分,我考虑打你-2分。
搞IT的穷秀才。

使用道具 举报

jdjia 

秀才

钻石会员 手机认证 

帖子
4355
体力
8585
威望
108
发表于 2008-8-26 21:34:33 |显示全部楼层
CSS算吗? 我写的比较复杂! :(  我写的是面向过程的!:)

 提示:您可以先修改部分代码再运行


[ 本帖最后由 jdjia 于 2008-8-26 21:44 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

垃圾青蛙

荣誉管理 手机认证 

帖子
26082
体力
51517
威望
21
居住地
福建省 厦门市
发表于 2008-8-26 21:38:15 |显示全部楼层

回复 22# jdjia 的帖子

你的结果应当等于7才对,而不是25
新一代四无新人,21世纪低碳男……博客 免费下载易提醒

使用道具 举报

jdjia 

秀才

钻石会员 手机认证 

帖子
4355
体力
8585
威望
108
发表于 2008-8-26 21:42:13 |显示全部楼层
其它的还有一个比较熟的写法;

 提示:您可以先修改部分代码再运行

使用道具 举报

鸡毛 

智商贰佰伍

荣誉管理

帖子
7982
体力
594
威望
14
居住地
福建省 福州市
发表于 2008-8-26 23:49:16 |显示全部楼层
你们把我会的都写了,那我写什么啊

 提示:您可以先修改部分代码再运行


[ 本帖最后由 鸡毛 于 2008-8-28 21:47 编辑 ]

使用道具 举报

垃圾青蛙

荣誉管理 手机认证 

帖子
26082
体力
51517
威望
21
居住地
福建省 厦门市
发表于 2008-8-27 00:49:00 |显示全部楼层
把那帖的内容搬过来吧。

 提示:您可以先修改部分代码再运行

新一代四无新人,21世纪低碳男……博客 免费下载易提醒

使用道具 举报

remain 

残缺

银牌会员

帖子
1221
体力
2368
威望
4
发表于 2008-8-27 00:54:27 |显示全部楼层
怎么没人用eval?

 提示:您可以先修改部分代码再运行

我刚写完一个vim的tabs插件

使用道具 举报

oror 

无话可说

金牌会员

帖子
979
体力
3698
威望
20
居住地
江苏省 扬州市
发表于 2008-8-27 01:28:26 |显示全部楼层
C语言
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         char buffer[20], *p;
  5.         int number = 0;
  6.         gets(buffer);
  7.         p=buffer;
  8.         while(*p!='\0')
  9.         {
  10.                 if(*p > 0x30 && *p < 0x39)
  11.                         number+=*p & 0xf;
  12.                 p++;
  13.         }
  14.         printf("%d", number/10 + number%10);
  15.         return 0;
  16. }
复制代码

[ 本帖最后由 oror 于 2008-8-27 01:32 编辑 ]

使用道具 举报

wjeasy 
帖子
2327
体力
2299
威望
3
居住地
山东省 泰安市
发表于 2008-8-27 09:06:11 |显示全部楼层
花了点时间写了个bat的,保存成bat文件看看吧,哈哈,很cool
  1. @echo off
  2. color 0A
  3. echo 请输入数字:
  4. set /p age=
  5. echo ---------------
  6. title %age%
  7. set sum=0
  8. set get=0
  9. set call_num=0

  10. ::计算字符串长度
  11. :begin
  12. set /a call_num+=1
  13. echo 第%call_num%次循环
  14. set str=%age%
  15. set num=0
  16. :next1
  17. if not "%str%"=="" (
  18. set /a num+=1
  19. set "str=%str:~1%"
  20. goto next1
  21. )
  22. echo 当前数字%age%
  23. @echo.

  24. set i=%num%
  25. :loop
  26. set /a i-=1
  27. set "get=%age:~-1%"
  28. set "age=%age:~0,-1%"
  29. set /a sum+=get
  30. if not "%age%"=="" (
  31. goto loop
  32. )

  33. if %sum% gtr 10 (
  34. set age=%sum%
  35. set sum=0
  36. goto begin
  37. )

  38. echo 最终结果:%sum%
  39. pause
复制代码





[ 本帖最后由 wjeasy 于 2008-8-27 09:16 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
我的签名被liuxinghonglei 清空了,杯具啊~~

使用道具 举报

77me 

亲亲米

中级会员

帖子
1836
体力
401
威望
2
发表于 2008-8-27 09:38:40 |显示全部楼层

回复 27# remain 的帖子

你的怎么结果还有可能出现两位数。。。

 提示:您可以先修改部分代码再运行



yeah! 搞定

汗 小弟没正正经经的学过程序...
想来想去 还是用递归了

青蛙MS也是用的递归 不过他是在function里alert 我是获取返回值 另作操作

看到#14 改简洁点

[ 本帖最后由 77me 于 2008-8-27 10:02 编辑 ]
我! 非新手≠高手

使用道具 举报

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

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-11 04:39 , Processed in 0.142393 second(s), 10 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部