一百个灯泡排成一排

来源:互联网 发布:mac粉底液专柜价格 编辑:程序博客网 时间:2024/05/07 17:56
.一百个灯泡排成一排,第一轮将所有灯泡打开;第二轮每隔一个灯泡关掉一个。即排在偶数的灯泡被关掉,第三轮每隔两个灯泡,将开着的灯泡关掉,关掉的灯泡打开。依次类推,第100轮结束的时候,还有几盏灯泡亮着。
思路: 

1.对于每盏灯,拉动的次数是奇数时,灯就是亮着的,拉动的次数是偶数时,灯就是关着的。 
2.每盏灯拉动的次数与它的编号所含约数的个数有关,它的编号有几个约数,这盏灯就被拉动几次。 
3.1—100这100个数中有哪几个数,约数的个数是奇数。 

我们知道:一个数的约数都是成对出现的,只有完全平方数约数的个数才是奇数个。 

所以这100盏灯中有10盏灯是亮着的,它们的编号分别是:1、4、9、16、25、36、49、64、81、100
 
2:公司组织一次羽毛球比赛,采用淘汰机制,假设公司有1001个人,如果要评出“公司羽毛球第一高手”的称号,至少需要进行多少场比赛?请简述设计过程,并写出代码模拟比赛过程。
int f500(int n)
{
 int N=0;
 int temp;
 while(n >1)
 {
  n=n/2+n%2;
  N+=n;
 }
 return N;
 
}
void main()
{
 cout<<f500(100)<<endl;
 
}
0 0
原创粉丝点击