现有编号为1,2,3…40共40盏处于关闭状态的色灯,第一次世界大战将编号是1的倍数的灯的

有2000盏亮着的电灯,各有1个拉线开关控制着,现按其顺序编号为1、2、3.2000,然后将编号为2的倍数的灯线拉一下,将编号为3的倍数的编号拉一下,最后将编号为5的倍数的灯线拉一下,三次拉完后亮_百度作业帮
有2000盏亮着的电灯,各有1个拉线开关控制着,现按其顺序编号为1、2、3.2000,然后将编号为2的倍数的灯线拉一下,将编号为3的倍数的编号拉一下,最后将编号为5的倍数的灯线拉一下,三次拉完后亮
有2000盏亮着的电灯,各有1个拉线开关控制着,现按其顺序编号为1、2、3.2000,然后将编号为2的倍数的灯线拉一下,将编号为3的倍数的编号拉一下,最后将编号为5的倍数的灯线拉一下,三次拉完后亮着的灯有多少盏?1...有2000盏亮着的灯,各有一个拉线开关控制者,现按其顺序编号为1、2、3……2000,然后将编号为2的倍数的灯线拉一下,再将编号为3的倍数的灯线拉一下,最后将编号为5的倍数的灯线拉一下,上次_百度作业帮
1...有2000盏亮着的灯,各有一个拉线开关控制者,现按其顺序编号为1、2、3……2000,然后将编号为2的倍数的灯线拉一下,再将编号为3的倍数的灯线拉一下,最后将编号为5的倍数的灯线拉一下,上次
1...有2000盏亮着的灯,各有一个拉线开关控制者,现按其顺序编号为1、2、3……2000,然后将编号为2的倍数的灯线拉一下,再将编号为3的倍数的灯线拉一下,最后将编号为5的倍数的灯线拉一下,上次拉完之后,亮着的灯有多少盏?2...大明家有一张边长是1.4米的正方形桌子,而他家还有2块边长为1米的正方形台布,如何使两块台布拼成一块大台布盖住桌面?3...三个连续奇数的和比其中最大的奇数大20,这三个奇数分别是()、()、().
1...有2000盏亮着的灯,各有一个拉线开关控制者,现按其顺序编号为1、2、3……2000,然后将编号为2的倍数的灯线拉一下,再将编号为3的倍数的灯线拉一下,最后将编号为5的倍数的灯线拉一下,上次拉完之后,亮着的灯有多少盏?被2整除1003 被3整除668 被5整除402 被2*3整除334 被2*5整除200 被3*5整除113 被2*3*5整除66 所以最后亮着的灯数-334-113-200+66=14912...大明家有一张边长是1.4米的正方形桌子,而他家还有2块边长为1米的正方形台布,如何使两块台布拼成一块大台布盖住桌面?【方法一】把其中一块桌布沿两条对角线剪开,可以得到四个相等的等腰直角三角形,再把它们缝在另一块桌布的四条边上,就可以得到一块新的正方形大桌布.【方法二】把两块桌布都按一条对角线剪开,就可以得到四块大小相同的三角形桌布,再把它们按直角边缝起来,就成了一块大桌布了.【方法三】把两块台布都沿着两条对角线剪开,就可以得到八块大小相同的三角形桌布,再把它们两块一组沿斜边缝起来,就组成了四块大小相同的正方形桌布,最后把它们缝成正方形大桌布3...三个连续奇数的和比其中最大的奇数大20,这三个奇数分别是()、()、().设三个连续奇数是:x-2,x,x+2 x-2+x+x+2-x-2=20 x=11 三个连续奇数是:9,11,13
第三题:设三个连续奇数是:x-2,x,x+2x-2+x+x+2-x-2=20x=11三个连续奇数是:9,11,132011盏亮着的灯,各有一个拉线开关控制,按顺序编号为1、2、3、···、2011,将编号为2的倍数的灯拉一下,各有一个拉线开关控制,按顺序编号为1、2、3、···、2011,将编号为2的倍数的灯拉一下,再_百度作业帮
2011盏亮着的灯,各有一个拉线开关控制,按顺序编号为1、2、3、···、2011,将编号为2的倍数的灯拉一下,各有一个拉线开关控制,按顺序编号为1、2、3、···、2011,将编号为2的倍数的灯拉一下,再
2011盏亮着的灯,各有一个拉线开关控制,按顺序编号为1、2、3、···、2011,将编号为2的倍数的灯拉一下,各有一个拉线开关控制,按顺序编号为1、2、3、···、2011,将编号为2的倍数的灯拉一下,再将编号为3的倍数的灯各拉一下,最后将编号为5的倍数的灯各拉一下,拉完后亮着的灯共有多少盏?光速!
最后亮的灯就是被拉一次或者被拉三次的灯,共计有1005盏.如下:其中,仅仅被拉一次的数量是:编号2的倍数,536盏;编号3的倍数,268盏;编号5的倍数,134盏.被拉三次的数量是:67盏.以上共计1005盏.一道六年级奥术题有2000盏亮着的电灯,各有一个拉线开关控制着.现按其顺序编号为1,2,3,4,…,2000,然后将编号为2的倍数的灯线拉一下,再将编号为3的倍数的灯线拉一下,最后将编号为5的倍数的灯_百度作业帮
一道六年级奥术题有2000盏亮着的电灯,各有一个拉线开关控制着.现按其顺序编号为1,2,3,4,…,2000,然后将编号为2的倍数的灯线拉一下,再将编号为3的倍数的灯线拉一下,最后将编号为5的倍数的灯
一道六年级奥术题有2000盏亮着的电灯,各有一个拉线开关控制着.现按其顺序编号为1,2,3,4,…,2000,然后将编号为2的倍数的灯线拉一下,再将编号为3的倍数的灯线拉一下,最后将编号为5的倍数的灯线拉一下,三次拉完之后,亮着的电灯有多少盏?
1002,具体的解释如下:既然灯是亮着的,那么被拉了一次的灯灭,被拉了两次的灯亮,被拉了三次的灯灭,我们分别算出拉了一,二,三次的灯的数量,结果就出来了.1.被拉了三次的灯,为2、3、5的最小公倍数,也就是2000/(2*3*5)=66 2.被拉了两次的灯,也就是求2和3、3和5、2和5的最小公倍数的和,这里注意要扣除被重复拉的灯(也就是2、3、5三个数的最小公倍数):2000/(2*3)+)+)-3*66=468 3.被拉了一次的灯,0/3+*468-3*66=932 那么最后亮着的灯的数量:=1002
既然灯是亮着的,那么被拉了一次的灯灭,被拉了两次的灯亮,被拉了三次的灯灭,我们分别算出拉了一,二,三次的灯的数量1.被拉了三次的灯,为2、3、5的最小公倍数,也就是2000/(2*3*5)=66 2.被拉了两次的灯,也就是求2和3、3和5、2和5的最小公倍数的和,这里注意要扣除被重复拉的灯(也就是2、3、5三个数的最小公倍数):2000/(2*3)+)+200...
(1)拉2的倍数有灯亮1000盏(2)3的倍数有666盏灯,而2和3的共同的公倍数6的倍数灯有333盏,因此有=1333盏灯亮着(3)5的倍数有400盏,其中2和5的公倍数10的倍数有200盏会被熄灭,3和5的公倍数15的倍数有133盏被熄灭,2和3和5的公倍数30的倍数的灯有66盏灯被再次打开。因此灯亮-133+66=...50个灯,有50个按钮,编号为1,2,3……50.刚开始灯全部是熄的,现在依次按按钮,每次按到按钮i,i的倍数编号的灯就变一下状态,问到最后开了几盏灯。
编辑:www.fx114.net
本篇文章主要介绍了"50个灯,有50个按钮,编号为1,2,3……50.刚开始灯全部是熄的,现在依次按按钮,每次按到按钮i,i的倍数编号的灯就变一下状态,问到最后开了几盏灯。",主要涉及到50个灯,有50个按钮,编号为1,2,3……50.刚开始灯全部是熄的,现在依次按按钮,每次按到按钮i,i的倍数编号的灯就变一下状态,问到最后开了几盏灯。方面的内容,对于50个灯,有50个按钮,编号为1,2,3……50.刚开始灯全部是熄的,现在依次按按钮,每次按到按钮i,i的倍数编号的灯就变一下状态,问到最后开了几盏灯。感兴趣的同学可以参考一下。
1、,,是让端口释放后立即就可以被再次使用。
用于对套接字处于状态下的,程序总是应该在调用之前设置套接字选项。TCP,的一方会进入状态
提供如下四个功能:
允许启动一个监听服务器并捆绑其众所周知端口,,,时将出错。
允许在同一端口上启动同一服务器的多个实例,地址即可。对于,地址和相同端口号的多个服务器。
允许单个进程捆绑同一端口到多个套接口上,地址即可。这一般不用于服务器。
允许完全重复的捆绑:当一个地址和端口绑定到某个套接口上时,地址和端口捆绑到另一个套接口上。一般来说,,套接口而言(不支持多播)。
选项有如下语义:
,地址和端口的套接口都指定了此套接口选项才行
地址是一个多播地址,和等效。
服务器中,之前设置套接口选项;
,选项,地址捆绑。
&&& if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR,
&& (const void *)&nOptval , sizeof(int)) & 0) ...
Q:编写 服务程序时,到底什么意思?
A:这个套接字选项通知内核,如果端口忙,但状态位于
,可以重用端口。如果端口忙,而状态位于其他状态,重用端口时依旧得到一个错误信息,指明地址已经使用中。如果你的服务程序停止后想立即重启,而新套接字依旧使用同一端口,此时选项非常有用。必须意识到,此时任何非期望数据到达,都可能导致服务程序反应混乱,不过这只是一种可能,事实上很不可能。
一个套接字由相关五元组构成,协议、本地地址、本地端口、远程地址、远程端口。仅仅表示可以重用本地本地地址、本地端口,整个相关五元组还是唯一确定的。所以,重启后的服务程序有可能收到非期望数据。必须慎重使用
选项。【2】
以下博客对这个问题进行了对答式的解答:
1. & 可以对一个端口进行多次绑定,一般这个是不支持使用的; &
& 2. & 对于监听套接字,比较特殊。如果你定义了SO_REUSEADDR,并且让两个套接字在同一个端口上进行接听,那么对于由谁来ACCEPT,就会出现歧义。如果你定义个SO_REUSEADDR,只定义一个套接字在一个端口上进行监听,如果服务器出现意外而导致没有将这个端口释放,那么服务器重新启动后,你还可以用这个端口,因为你已经规定可以重用了,如果你没定义的话,你就会得到提示,ADDR已在使用中。&
& 我用在多播的时候,也经常使用SO_REUSEADDR,也是为了防止机器出现意外,导致端口没有释放,而使重启后的绑定失败~
&我的总结:防止服务器在发生意外时,端口未被释放~可以重新使用~
&一个兄弟提出的问题:
&SOCKET & BindSocket1,BindSocket2.; &
& & & & & & & struct & sockaddr_in & & MyA &
& & & & & & & MyAddress.sin_family & =AF_INET; &
& & & & & & & MyAddress.sin_addr.sin_addr=strMyA &
& & & & & & & MyAddress.sin_port & =htonl(MyPort); &
&&&&&&&&&&&&& setsockopt(....,SO_REUSEADDR,.....)
&&&&&&&&&&&&& Bind(BindSocket1,(strunct & socketaddr*)MyAddress,sizeof(MyAddress)) &
& & & & & & & Bind(BindSocket2,(strunct & socketaddr*)MyAddress,sizeof(MyAddress)) &
& & & & & & & Listen(BindSocket1,5); &
& & & & & & & Listen(BindSocket2,5); &
& & & & & & & .... &
& & & & & & & 这样可以么,有问题或是要注意的地方?&&&&
&&&&&&&&&&& &问绑定第二次是否可以成功?
&&&&&&&&&&& 答复:
&&&&&&&&&&& 网友vmstat多次提出了这个问题:SO_REUSEADDR有什么用处和怎么使用。而
且很多网友在编写网络程序时也会遇到这个问题。所以特意写了这么一篇文章,
希望能够解答一些人的疑难。
&&&&其实这个问题在Richard&Stevens的《Unix网络编程指南》卷一里有很详细的
解答(中文版P166-168页)。这里我只是写几个基本的例子来验证这个问题。
&&&&首先声明一个问题:当两个socket的address和port相冲突,而你又想重用地
址和端口,则旧的socket和新的socket都要已经被设置了SO_REUSEADDR特性,只
有两者之一有这个特性还是有问题的。
&&&&SO_REUSEADDR可以用在以下四种情况下。
&&&&(摘自《Unix网络编程》卷一,即UNPv1)
&&&&1、当有一个有相同本地地址和端口的socket1处于TIME_WAIT状态时,而你启
动的程序的socket2要占用该地址和端口,你的程序就要用到该选项。
&&&&2、SO_REUSEADDR允许同一port上启动同一服务器的多个实例(多个进程)。但
每个实例绑定的IP地址是不能相同的。在有多块网卡或用IP&Alias技术的机器可
以测试这种情况。
&&&&3、SO_REUSEADDR允许单个进程绑定相同的端口到多个socket上,但每个soc
ket绑定的ip地址不同。这和2很相似,区别请看UNPv1。
&&&&4、SO_REUSEADDR允许完全相同的地址和端口的重复绑定。但这只用于UDP的
多播,不用于TCP。
例子1:测试上面第一种情况。
#include&&netinet/in.h&&
#include&&sys/socket.h&&
#include&&time.h&&
#include&&stdio.h&&
#include&&string.h&&
#define&MAXLINE&100&
int&main(int&argc,&char**&argv)&
&&&int&listenfd,&
&&&struct&sockaddr_in&&
&&&char&buff[MAXLINE+1];&
&&&time_t&&
&&&unsigned&short&&
&&&int&flag=1,len=sizeof(int);&
&&&port=10013;&
&&&if(&(listenfd=socket(AF_INET,SOCK_STREAM,0))&==&-1)&
&&&&&perror(&socket&);&
&&&&&exit(1);&
&&&bzero(&servaddr,sizeof(servaddr));&
&&&servaddr.sin_family=AF_INET;&
&&&servaddr.sin_addr.s_addr=htonl(INADDR_ANY);&
&&&servaddr.sin_port=htons(port);&
&&&if(&setsockopt(listenfd,&SOL_SOCKET,&SO_REUSEADDR,&&flag,&len)&==&-
&&&&&&perror(&setsockopt&);&
&&&&&&exit(1);&
&&&if(&bind(listenfd,(struct&sockaddr*)&servaddr,sizeof(servaddr))&==&
&&&&&&perror(&bind&);&
&&&&&&exit(1);&
&&&&&&printf(&bind&call&OK!/n&);&
&&&if(&listen(listenfd,5)&==&-1)&
&&&&&&perror(&listen&);&
&&&&&&exit(1);&
&&&for(;;)&
&&&&&&if(&(connfd=accept(listenfd,(struct&sockaddr*)NULL,NULL))&==&-1)
&&&&&&&&&&perror(&accept&);&
&&&&&&&&&&exit(1);&
&&&&&&if(&fork()&==&0)/*child&process*/&
&&&&&&&&close(listenfd);/*这句不能少,原因请大家想想就知道了。*/&
&&&&&&&&ticks=time(NULL);&
&&&&&&&&snprintf(buff,100,&%.24s/r/n&,ctime(&ticks));&
&&&&&&&&write(connfd,buff,strlen(buff));&
&&&&&&&&close(connfd);&
&&&&&&&&sleep(1);&
&&&&&&&&execlp(&f1-9d&,NULL);&
&&&&&&&&perror(&execlp&);&
&&&&&&&&exit(1);&
&&&&&close(connfd);&
&&&&&exit(0);/*&end&parent*/&
测试:编译为f1-9d程序,放到一个自己PATH环境变量里的某个路径里,例如$HO
ME/bin,运行f1-9d,然后telnet&localhost&10013看结果。
2、第二种情况我没有环境测,所以就不给测试程序了,大家有条件的可以自己写
一个来测试一下。
3、测试第三种情况的程序
#include&&netinet/in.h&&
#include&&sys/socket.h&&
#include&&time.h&&
#include&&stdio.h&&
#include&&string.h&&
#define&MAXLINE&100&
int&main(int&argc,&char**&argv)&
&&&int&fd1,fd2;&
&&&struct&sockaddr_in&servaddr1,servaddr2;&
&&&char&buff[MAXLINE+1];&
&&&time_t&&
&&&unsigned&short&&
&&&int&flag=1,len=sizeof(int);&
&&&port=10013;&
&&&if(&(fd1=socket(AF_INET,SOCK_STREAM,0))&==&-1)&
&&&&&&&perror(&socket&);&
&&&&&&&exit(1);&
&&&if(&(fd2=socket(AF_INET,SOCK_STREAM,0))&==&-1)&
&&&&&&&perror(&socket&);&
&&&&&&&exit(1);&
&&&bzero(&servaddr1,sizeof(servaddr1));&
&&&bzero(&servaddr2,sizeof(servaddr2));&
&&&servaddr1.sin_family=AF_INET;&
&&&servaddr2.sin_family=AF_INET;&
&&&if(&inet_pton(AF_INET,&&127.0.0.1&,&&servaddr1.sin_addr)&&=&0)&
printf(&inet_pton()&call&error:127.0.0.1/n&);&
if(&inet_pton(AF_INET,&&128.160.1.230&,&&servaddr2.sin_addr)&&=&0)&
printf(&inet_pton()&call&error:128.160.1.230/n&);&
servaddr1.sin_port=htons(port);&
servaddr2.sin_port=htons(port);&
if(&setsockopt(fd1,&SOL_SOCKET,&SO_REUSEADDR,&&flag,&len)&==&-1)&
perror(&setsockopt&);&
if(&setsockopt(fd2,&SOL_SOCKET,&SO_REUSEADDR,&&flag,&len)&==&-1)&
perror(&setsockopt&);&
if(&bind(fd1,(struct&sockaddr*)&servaddr1,sizeof(servaddr1))&==&-1)
perror(&bind&fd1&);&
if(&bind(fd2,(struct&sockaddr*)&servaddr2,sizeof(servaddr2))&==&-1)
perror(&bind&fd2&);&
printf(&bind&fd1&and&fd2&OK!/n&);&
/*put&other&process&here*/&
getchar();&
exit(0);/*&end&*/&
4、由于第四种情况只用于UDP的多播,和TCP的使用没多大关系,所以就不写测试
例子了。自己有兴趣的可以写。
以上的程序都是在Linux下编译通过的。也可以在其他unix平台运行。
本文标题:
本页链接:

我要回帖

更多关于 第一次亲密接触 的文章

 

随机推荐