免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: xyfree
打印 上一主题 下一主题

删帖吧 [复制链接]

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
51 [报告]
发表于 2010-06-24 18:09 |只看该作者
编程语言是本来就是累赘.我用它解决问题,写的好不好 问题能解决就行  
2年前需要在win环境下写个网络 ...
heidern 发表于 2010-06-24 16:56



    所以你就只配给别人解决问题。你都不知道你要解决的问题意味着什么。

论坛徽章:
0
52 [报告]
发表于 2010-06-24 20:26 |只看该作者
大于1的整数N有一个约数p,则N/p必为N的约数,除非存在一个整数p,使得N/p=p,否则,N的约数个数,在包括1和和 ...
还魂僵尸 发表于 2010-06-24 18:08

论坛徽章:
0
53 [报告]
发表于 2010-06-24 20:42 |只看该作者
都perl了你还这么累赘,你咋不去写C捏…………

use strict;

my @lights;
foreach my $i ( ...
starwing83 发表于 2010-06-24 16:37



    拜托,用C写代码也很少的,我前面的加了注释也才26行,要像你那样风格写可以控制在20行以内

论坛徽章:
0
54 [报告]
发表于 2010-06-24 23:01 |只看该作者

论坛徽章:
0
55 [报告]
发表于 2010-06-24 23:03 |只看该作者
本帖最后由 guoruimin 于 2010-06-25 09:32 编辑
  1. light = [True for i in xrange(100)]
  2. for i in xrange(2, 101):
  3.     for j in xrange(i, 101, i):
  4.         light[j-1] = not light[j-1]
  5. print ' '.join([str(i+1) for i, j in enumerate(light) if j])
复制代码
1 4 9 16 25 36 49 64 81 100
  1. 定义 n, x, y:
  2. 1 <= n && n <= 100
  3. 1 <= x && x <= sqrt(n)
  4. sqrt(n) <= y && y <= n
  5. 且有:
  6. x * y = n
  7. 当 x != y 时:
  8.     状态切换 2 次,等于没切换
  9. 当 x == y 时:
  10.     x == sqrt(n)
  11.     y == sqrt(n)
  12.     状态切换 1 次
  13. 所以:
  14. 即为找符合条件的 n,满足 sqrt(n) * sqrt(n) == n
复制代码
  1. light = []
  2. i = 1
  3. while i ** 2 <= 100:
  4.     light.append(i ** 2)
  5.     i += 1
  6. print ' '.join([str(i) for i in light])
复制代码
1 4 9 16 25 36 49 64 81 100

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
56 [报告]
发表于 2010-06-25 00:02 |只看该作者
拜托,用C写代码也很少的,我前面的加了注释也才26行,要像你那样风格写可以控制在20行以内
mgqw 发表于 2010-06-24 20:42



    我的风格和你的有什么区别???

本来就是“开关灯”,你多此一举+1还判断是否为0,本来perl就自动初始化所有元素为undef,你还多此一举初始化。这不是风格问题,这是不了解你所用的语言,不了解你要解决的问题。

论坛徽章:
0
57 [报告]
发表于 2010-06-25 00:21 |只看该作者
,这张贴很有水准, 我相当的鄙视我自己。/。。

论坛徽章:
0
58 [报告]
发表于 2010-06-25 01:28 |只看该作者
本帖最后由 没本 于 2010-06-25 05:37 编辑

回复 53# mgqw
回复 56# starwing83

mgqw和starwing83两位都别吵啦,貌似我25楼的程序的循环次数比你们两位的都要少哈。

再简化一下少一次判断

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5.         const int n = 100;
  6.         int i, j;
  7.         int li[n+1];
  8.         memset( li, 0, sizeof(int)*(n+1) );
  9.         for( i=1; i<=n; ++i )
  10.         {
  11.                 for( j=i; j<=n; j+=i )
  12.                         li[j] ^= 1;
  13.                 if( li[i] )
  14.                         printf( "%d ", i );
  15.         }
  16.         puts( "\n" );
  17.         return 0;
  18. }
  19. /*
  20. $ gcc -o li li.c
  21. $ ./li
  22. 1 4 9 16 25 36 49 64 81 100

  23. $
  24. */
复制代码

论坛徽章:
0
59 [报告]
发表于 2010-06-25 08:46 |只看该作者
本帖最后由 mgqw 于 2010-06-25 08:54 编辑
回复  mgqw
回复  starwing83

mgqw和starwing83两位都别吵啦,貌似我25楼的程序的循环次数比你们两位 ...
没本 发表于 2010-06-25 01:28



    你的25楼和我的26楼除了你是用的" ^ "而我是用的" ! "取反方式不一样 ,你的算法和我差不太多{:3_194:}

  1. int main()
  2. {
  3.         //为了方便观察,只使用a[1]-a[100], j也如此
  4.         //数组内容0代表关灯, 1代表开灯
  5.         int i, j, a[101]={0};
  6.         //循环100次,每次都把第N次所有编号是N的倍数的灯状态改变一次
  7.         for( i=1; i<101; i++ )
  8.                 for( j=i; j<101; j++)
  9.                 {
  10.                         if( j%i==0 )
  11.                         {
  12.                                 a[j] = !a[j];
  13.                         }
  14.                 }
  15.         //输出所有开着的灯也就是数组内容为1的数组编号
  16.         for ( i=1; i<101; i++ )
  17.         {
  18.                 if( a[i]==1 )
  19.                 {
  20.                         printf("a[%d]=%d\t", i, a[i] );
  21.                 }
  22.                
  23.         }
  24.         printf("\n");

  25. }
复制代码

论坛徽章:
0
60 [报告]
发表于 2010-06-25 08:49 |只看该作者
我的风格和你的有什么区别???

本来就是“开关灯”,你多此一举+1还判断是否为0,本来perl就 ...
starwing83 发表于 2010-06-25 00:02


     我是用的perl? 看清楚再说
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP