题目:

有100人,编号从1到100; 另有100盏灯,编号也从 1到100. 现要求每人去拉能被自己编号整除的所有电灯, 例如编号为1者应把所有的灯都拉一遍, 编号为2者应把所有编号为偶数的灯都拉一遍,而  编号为100者只能拉编号为100的灯. 假设一开始 所有的电灯都是灭的,那么最后有几盏灯是亮的? 编号分别是多少?

要求:

定义两个函数:                       
      void switch_light(int light[], int man);
      int lights_on(int *light, int *on);

main()中定义一个数组light,各个元素的值表示
   各盏灯的亮灭状态(比如1表示亮,0表示灭),再
   定义另外一个数组on,各个元素的值表示最后亮
   着的灯的编号。

switch_light()的作用是编号为man的人尝试拉可
   以被他编号整除的灯,结果影响数组light各元素
   的值;

lights_on()统计一共有几盏灯是亮的,并把亮着
   的灯的编号存放到on中,返回值是亮着的灯总数。

程序:

 #include <stdio.h>
#define LIGHT 100
int main(void)
{
int i, j, a[LIGHT + ] = { }, count = ;
for (i = ; i <= LIGHT; i++)
for (j = i; j <= LIGHT; j += i)
a[j] ^= ;
printf("●:亮 ○:暗\n");
for (i = ; i <= LIGHT; i++)
{
if (a[i])
{
printf("●");
count++;
}
else printf("○");
}
printf("\n总计 %d 盏灯亮着", count);
return ;
}

 #include <stdio.h>
int main() //   main()中定义一个数组light,各个元素的值表示各盏灯的亮灭状态(比如1表示亮,0表示灭),再定义另外一个数组on,各个元素的值表示最后亮着的灯的编号。
{
void switch_light(int light[], int man); //声明拉灯函数
int lights_on(int *light, int *on); //声明统计函数
int i,man,light[]={},on[],sum;
for(man=;man<=;man++)
switch_light(light,man);
sum=lights_on(light,on);
printf("last there are %d lights on!\n",sum);
printf("these lights are:");
for(i=;i<sum;i++) printf("%d ",on[i]);
}
void switch_light(int light[], int man) //switch_light()的作用是编号为man的人尝试拉可以被他编号整除的灯,结果影响数组light各元素的值;
{
int i;
for(i=man;i<=;i++)
if(i%man==)
{
if(light[i]==)
light[i]=;
else light[i]=;
}
} int lights_on(int *light, int *on) //lights_on()统计一共有几盏灯是亮的,并把亮着的灯的编号存放到on中,返回值是亮着的灯总数。
{
int i,j=;
for(i=;i<=;i++)
if(light[i]==)
{
on[j]=i; j++;
}
return(j);
}

C语言 百人拉百灯问题的更多相关文章

  1. 【算法】C语言趣味程序设计编程百例精解

    C语言趣味程序设计编程百例精解 C/C++语言经典.实用.趣味程序设计编程百例精解(1)  https://wenku.baidu.com/view/b9f683c08bd63186bcebbc3c. ...

  2. 斗牛app上架应用宝、牛牛手机游戏推广、百人牛牛app应用开发、棋牌游戏上传、手游APP优化

    联系QQ:305-710439斗牛app上架应用宝.牛牛手机游戏推广.百人牛牛app应用开发.棋牌游戏上传.手游APP优化 iOS开发iPhone/iPad平台安卓手机软件开发机型覆盖范围 超过113 ...

  3. 百人研发团队的难题:研发管理、绩效考核、组织文化和OKR

    分享一个公司规模近200,研发占一半的创业公司 Worktile 在研发团队管理方面的玩法,仅供百人左右研发团队参考~ 什么是研发团队?简单的说,你熟悉的那帮穿格子衬衫,以程序员为核心组成的团队,就是 ...

  4. python解决百钱买百鸡

    百钱买百鸡 关注公众号"轻松学编程"了解更多. 现有100钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只 要求:公鸡.母鸡,小鸡都要有,把100文钱花完,买的鸡的数量正好是10 ...

  5. 百钱买百鸡问题 php版本

    /* * 百钱买百鸡问题 * * 我国古代数学家张丘建在<算经>一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五:鸡母一,值钱三:鸡雏三,值钱一:百钱买百鸡,则翁.母 ...

  6. 华为OJ平台——百钱买百鸡问题

    题目描述: 元前五世纪,我国古代数学家张丘建在<算经>一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一. 百钱买百鸡,问鸡翁.鸡母.鸡雏各几何? 思路: 这道题很简单,假 ...

  7. 用JS来计算百钱买百鸡

    怎样用一百块买一百只鸡?已知公鸡5块一只,母鸡3块一只,小鸡一块钱3只: 需要用到for循环嵌套,并且通过优化代码,可以加快运行效率. <!DOCTYPE html> <html l ...

  8. python_百文买百鸡问题

    百文买百鸡问题 -- 不定方程 -- 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,如何买? -- 列出方程式 x + y + z = 100 5x + 3y + z/3 ...

  9. 百钱买百鸡问题Java

    //百钱买百鸡public class baiqianbaiji { static void BQBJ(int m,int n)//m为钱的总数,n为鸡数 { int z; for(int x = 0 ...

随机推荐

  1. PHP 投票练习

    重点:1.进度条的显示2.操作数据库<form action="chuli.php" method="post"> <?php include ...

  2. CenOS7.1 vncserver@:1.service: control process exited, code=exited status=2

    参考:http://www.cnblogs.com/gaohong/p/4829206.html 报错细节: vncserver@:1.service: control process exited, ...

  3. datetimepicker文件

    很有诚意先放下载地址百度网盘 最近在做angular的项目,找一个合适的 datepicker ,首选bootstrap-datetimepicker,但是项目中没有到bootstrap, 整理处理下 ...

  4. 第五篇 Getting Started with ORACLE EBS(开始学习ORACLE EBS)

    第一篇介绍了ERP软件是供应链管理软件.告诉你这个软件改善或提升企业管理的切入点和着力点.有了着力点才能给力. 第二篇介绍了什么是咨询以及咨询工作共通的章法,告诉了你咨询的套路是什么,就像练习一套拳, ...

  5. minimum-moves-to-equal-array-elements

    https://leetcode.com/problems/minimum-moves-to-equal-array-elements/ package com.company; import jav ...

  6. POJ 3259 Wormholes【Bellman_ford判断负环】

    题意:给出n个点,m条正权的边,w条负权的边,问是否存在负环 因为Bellman_ford最多松弛n-1次, 因为从起点1终点n最多经过n-2个点,即最多松弛n-1次,如果第n次松弛还能成功的话,则说 ...

  7. memcached增删改查

    1)add语法:add key flag expire byteskey 键flag 标志expire 过期时间,可以是秒或一个具体的时间戳bytes 要存的东西的bytes长度 PS:只能添加内存里 ...

  8. PHP学习笔记02——简易计算器

    <!DOCTYPE html> <html> <head> <title>PHP简易计算器</title> </head> &l ...

  9. ODBC访问不到Server的问题

    安装了ODBC-MYSQL的配置以后,发现在测试连接Mysql服务器的时候,一直访问不通, 经过测试发现,安装ODBC的PC(windows 8.1 )上的防火墙阻止了连接,最终确认需要 把虚拟机监控 ...

  10. Bootstrap初级用户谈谈网页在手机上的显示效果优化

    本人之前已经使用Bootstrap有一段时间了,但是之前做出的网站都只是在电脑端使用,没有注意过手机端的显示效果.这两天自己使用Bootstrap做了一个简单的Web个人日志系统,想在手机端也使用,桌 ...