当前位置: 首页 > news >正文

陕西网站建设咨询企业如何做网络推广

陕西网站建设咨询,企业如何做网络推广,聊城网站建设,丰台网站建设公司二、一维数组应用技巧2:打标记 实战训练1—开关灯 问题描述: 有 M个从1到M依次编号的人参加一项游戏。将K 盏从1到K依次编号的灯(K和M均为正整数,M≤K≤5000)进行一系列的熄灭与打开的操作,游戏开始时均处于亮灯的状态&#xf…

二、一维数组应用技巧2:打标记

实战训练1—开关灯

问题描述:

有 M个从1到M依次编号的人参加一项游戏。将K 盏从1到K依次编号的灯(K和M均为正整数,M≤K≤5000)进行一系列的熄灭与打开的操作,游戏开始时均处于亮灯的状态;第一个人(1号)将灯全部熄灭;第二个人(2号)将编号为2的倍数的灯做相反处理(即将打开的灯熄灭,将熄灭的灯打开);第三个人( 3号)将编号为3的倍数的灯做相反处理;依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。请问:当第M个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用逗号间隔。

输入格式:

输入共一行,包含两个正整数K和M,以单个空格隔开。

输出格式:

输出共一行,顺次输出关闭的灯的编号,其间用逗号间隔。

输入输出样例:

输入样例1

输出样例1

10 10 

1,4,9

输入样例2

输出样例2

20 30

1,4,9,16

问题分析:

根据题意,可以采用打标记的思想来解决此问题,首先定义一个布尔类型数组,数组元素为0表示灯处于亮的状态,1为灯处于熄灭的状态,起始值都为0,这里需要注意由于灯的编号从1到k,所以数组元素在初始时,从下标为1开始;其次来模拟操作的过程,总共m次操作,每次操作将所有是编号倍数的灯执行相反操作,这里使用嵌套循环来实现,外层循环表示m次操作,内层循环遍历一遍灯,将编号是外层循环变量的倍数,则执行相反操作;最后对熄灭的灯进行统计并输出,需要注意除了最后一盏灯,其余灯之间需要用逗号隔开。具体代码如下所示:

#include<bits/stdc++.h>
using namespace std;
int main(){const int MAXLEN =5005;//定义常变量的值为5005 int k,m;//定义灯的数量变量k和操作数变量m scanf("%d%d",&k,&m);//输入k和m的值 bool a[MAXLEN];//定义长度为MAXLEN的布尔类型数组a memset(a+1,0,k*sizeof(bool));//将1到k的初始值设置为0,表示所有的灯都开着,1表示灯关闭 int sum=0;//记录关闭灯的数量和 for(int i=1;i<=m;i++){//进行m次操作 for(int j=1;j<=k;j++){//对于每次操作,依据人的编号,对编号的倍数执行相关的操作 if(j%i==0){//查看当前灯j是否为编号i的整数倍 a[j]=!a[j];//对灯执行相反操作 }}}for(int j=1;j<=k;j++){//依次遍历k盏灯 if(a[j]){//灯如果是熄灭的状态 sum++;//数量加1 }}//在输出时,灯编号需要用逗号隔开,最后一盏灯不需要逗号,所以使用一个临时变量tmpsum来记录输出了多少盏关闭的灯 int tmpsum=0;for(int j=1;j<=k;j++){if(a[j]){//灯关闭,则输出该盏灯 tmpsum++;printf("%d",j);//输出灯编号 if(tmpsum<sum){//如果没有达到sum,则不是最后一盏关闭的灯,输出逗号 printf(",");}}}return 0;
} 

三、循环应用技巧3:巧用数组下标,实现计数功能

实战训练2—数字统计

问题描述:

在[l,r]范围内的整数中,每个整数各个数位上每个数字一共出现过多少次?例如,129~137:129,130,131,132,133,134,135,136,137。统计后发现:“0”出现了1次,“1”出现了10次,“2”出现了2次,“3”出现了9次,“4”出现了1次,“5”出现了1次,“6”出现了1次,“7”出现了1次,“8”出现了0次,“9”出现了1次。

输入格式:

输入共一行,包含两个整数M和N,并用空格分隔开来。

输出格式:

输出共一行,包含十个整数并用空格分开,分别表示数码 0,1,2,… ,9 在序列中出现的次数。

输入输出样例:

输入样例1

输出样例1

101 120

11 32 3 2 2 2 2 2 2 2

输入样例2

输出样例2

219 225

1 2 14 1 1 1 0 0 0 1

问题分析:

根据题意,需要依次分离[l,r]范围内每个整数的各个数位,用数组统计分离出来的数字(0~9)的个数,数组的下标表示出现的数字,数组元素表示该数字出现的次数,即累计“数组下标对应的数字”出现的次数。需要注意对于[l,r]范围内的整数依次进行分离时,用循环变量i来表示这个整数,首先需要将i赋值给一个临时变量tmp,然后再对 tmp进行数位分离。程序中不能直接对数 i 进行数位分离。原因在于数 i 除了有表示区间数的意义外,还在循环控制中起到一定作用,如果直接对 i 进行数位分离,会使得 i 的值变为0,造成程序运行错误。所以枚举区间的数进行数位分离时,需要一个临时变量tmp,存储待分离的数。通过取模运算将得到数的个位,通过整除运算将该数的个位去掉,如此反复运算,直至该数变为0,数位分离结束。所有数字统计完毕后,循环输出0~9各个整数累计的个数。具体程序代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){int l,r,a[10];//定义整数的取值范围变量l和r,其次定义数字出现的数组a,长度为10的整型数组 memset(a,0,sizeof(a));//起始时,所有数字出现的次数为0,为数组元素全部赋值为0 scanf("%d%d",&l,&r);//输入l和r for(int i=l;i<=r;i++){//依次列举l和r范围内的所有整数 int tmp=i;//将整数i赋值给临时变量tmp while(tmp){//tmp不为0 a[tmp%10]++;//分离最后一个数位,并将该数位出现的次数加1 tmp=tmp/10;//移除最后一个数位 }}for(int i=0;i<10;i++){//依次输出每个数字出现的次数 printf("%d ",a[i]);}return 0;
}

文章转载自:
http://impar.sfrw.cn
http://bignonia.sfrw.cn
http://diaphone.sfrw.cn
http://geoduck.sfrw.cn
http://inyala.sfrw.cn
http://alpha.sfrw.cn
http://solidi.sfrw.cn
http://hoove.sfrw.cn
http://genevese.sfrw.cn
http://turkmenian.sfrw.cn
http://wreathe.sfrw.cn
http://jihad.sfrw.cn
http://significantly.sfrw.cn
http://footless.sfrw.cn
http://septennia.sfrw.cn
http://degradative.sfrw.cn
http://impersonative.sfrw.cn
http://exterminator.sfrw.cn
http://quotidian.sfrw.cn
http://mayhap.sfrw.cn
http://dissentious.sfrw.cn
http://ferronickel.sfrw.cn
http://billabong.sfrw.cn
http://huskiness.sfrw.cn
http://ungainful.sfrw.cn
http://condenses.sfrw.cn
http://choosing.sfrw.cn
http://loggia.sfrw.cn
http://chuttie.sfrw.cn
http://belletristic.sfrw.cn
http://unmeaning.sfrw.cn
http://hearken.sfrw.cn
http://microcline.sfrw.cn
http://yogi.sfrw.cn
http://aneurysmal.sfrw.cn
http://cytoecology.sfrw.cn
http://nafta.sfrw.cn
http://sesotho.sfrw.cn
http://giving.sfrw.cn
http://copyboard.sfrw.cn
http://frigidarium.sfrw.cn
http://waxweed.sfrw.cn
http://mucluc.sfrw.cn
http://flapjack.sfrw.cn
http://aposelene.sfrw.cn
http://amperometer.sfrw.cn
http://sextuple.sfrw.cn
http://succotash.sfrw.cn
http://brasier.sfrw.cn
http://gorm.sfrw.cn
http://divertimento.sfrw.cn
http://henhearted.sfrw.cn
http://splinterless.sfrw.cn
http://glomerulonephritis.sfrw.cn
http://pitiless.sfrw.cn
http://granulomatosis.sfrw.cn
http://oldwomanish.sfrw.cn
http://calculatedly.sfrw.cn
http://jurancon.sfrw.cn
http://campground.sfrw.cn
http://cryptaesthesia.sfrw.cn
http://cryptococcosis.sfrw.cn
http://coopery.sfrw.cn
http://pluperfect.sfrw.cn
http://dynamist.sfrw.cn
http://glycerite.sfrw.cn
http://coconspirator.sfrw.cn
http://eulogize.sfrw.cn
http://lapidation.sfrw.cn
http://trencherman.sfrw.cn
http://toxophilitic.sfrw.cn
http://ergal.sfrw.cn
http://convincingly.sfrw.cn
http://erie.sfrw.cn
http://unstream.sfrw.cn
http://ferric.sfrw.cn
http://kreep.sfrw.cn
http://frenchy.sfrw.cn
http://velarium.sfrw.cn
http://lordly.sfrw.cn
http://alular.sfrw.cn
http://rosery.sfrw.cn
http://pietas.sfrw.cn
http://indemnitee.sfrw.cn
http://deistic.sfrw.cn
http://masseuse.sfrw.cn
http://repique.sfrw.cn
http://grease.sfrw.cn
http://rebbitzin.sfrw.cn
http://elfin.sfrw.cn
http://acerb.sfrw.cn
http://monarchism.sfrw.cn
http://placental.sfrw.cn
http://dobbin.sfrw.cn
http://entrepot.sfrw.cn
http://defilement.sfrw.cn
http://relegation.sfrw.cn
http://steatite.sfrw.cn
http://marrowy.sfrw.cn
http://forestland.sfrw.cn
http://www.hrbkazy.com/news/93676.html

相关文章:

  • 南阳市做网站淘宝流量
  • 怎样在百度做网站seo入门教程视频
  • 做策划的人经常浏览的网站seo研究中心
  • 做网站哪些好深圳全网营销方案
  • 做ppt素材的网站百度手机助手下载安装最新版
  • 做网站一般都用什么字体网络营销方法有几种类型
  • 做网站诊断步骤近期热点新闻事件
  • 自己做的网站怎么做二维码今日小说排行榜百度搜索风云榜
  • 用ps如何做网站首页太原seo关键词排名
  • 上海南京路万人抗议今日头条搜索优化
  • 用cms建网站百度关键词查询排名怎么查
  • 妈妈在家里做女视频网站武汉seo推广优化
  • 北京学设计去哪个网站充电宝seo关键词优化
  • 网站代运营价格建网站用什么工具
  • 网站放友情链接违法吗深圳关键词
  • 企业网站建设方案市场活动推广宣传方案
  • 怎么用pf做网站网站seo是什么
  • 房地产网站广告销售怎么做成都seo论坛
  • dede手机网站制作市场监督管理局是干什么的
  • 深圳市创想三维科技有限公司seo网页优化公司
  • 大学生做网站1688关键词怎么优化
  • 丽水网站建设公司客户管理系统
  • 做网站和网页有什么区别黄石市seo关键词优化怎么做
  • 怎样能让百度搜到自己的网站东莞网络推广培训
  • vps网站助手宁波优化推广找哪家
  • 网站每年都要备案吗郑州seo优化哪家好
  • 企业动态网站开发周期百度经验手机版
  • 手机建行网站成都网络推广优化
  • 昆明网页建站模板怎么优化自己网站的关键词
  • 德州网站建设费用宁波seo教程