[说明] 设一个环上有编号为0~n-1的n粒颜色不尽相同的珠子(每粒珠子颜色用字母

题型:填空题

问题:

[说明]
设一个环上有编号为0~n-1的n粒颜色不尽相同的珠子(每粒珠子颜色用字母表示,n粒珠子的颜色由输入的字符串表示)。从环上的某两粒珠子间剪开,则环上珠子形成一个序列然后按以下规则从序列中取走珠子:首先从序列左端取走所有连续的同色珠子; 然后从序列右端在剩下的珠子中取走所有连续的同色珠子,两者之和为该剪开处可取走珠子的粒数。在不同位置剪开,能取走的珠子也不尽相同。
本程序所求的是在环上哪个位置剪开,按上述规则可取走的珠子粒数最多。程序中用数组存储字符串。例如:10粒珠子颜色对应字符串为“aaabbbadcc”,在0号珠子前剪开,序列为aaabbbadcc,从左端取走3粒a色珠子,从右端取走2粒c色珠子,共取走5粒珠子。若在3号珠子前剪开,即bbbadccaaa,共取走6粒珠子。
[函数]
int count (char *s,int start,int end)
int i,c=0, color=s[start],step=(start>end)-1:1;
for i=start; s[i] ==color; i+=step)
if (step>0 && i>end || (1) ) break;
(2) ;

return c:

void main()
char t,s[120];
int i,j,c,len,maxc,cut=0;
printf("请输入环上代表不同颜色珠子字符串:");
scanf("%s”,s);
len=strlen(s);
for (i=maxc=0; i<len; i++)( /*尝试不同的剪开方式*/
c=count (s, 0,len-1);
if(c<len) c+=count( (3) );
if (c>maxc)cut=i; maxc=c;
/*数组s的元素循环向左移动一个位置*/
t=s[0];
for(j=1; j<len; j++) (4) ;
(5) ;

printf("在第%d号珠子前面剪开,可以取走%d个珠子.\n",cut,maxc);

考点:计算机软件水平考试初级程序员初级程序员下午试题
题型:填空题

下列病毒性心肌炎的治疗措施中,错误的是()

A.急性期卧床休息,减轻心脏负担

B.对有心力衰竭者洋地黄剂量偏小,重者加利尿药

C.急性期早期加用肾上腺皮质激素

D.急性期使用大剂量维生素C,改善心肌代谢

E.疾病早期可用抗病毒药,清除病毒血症

题型:填空题

教育部公布《2016年全国硕士研究生招生工作管理规定》,2016年起,国家设立“()专项硕士研究生招生计划”,专门面向()招生。

A.现役大学生士兵

B.复员大学生士兵

C.退役大学生士兵

D.转业大学生士兵

题型:填空题

吸附力作用与哪个因素关系最密切()

A.基托面积

B.牙槽嵴形态

C.基托与黏膜间的密合程度

D.唾液质量

E.黏膜厚度

题型:填空题

进出口许可证的有效期一般为( )个月。

A.6

B.12

C.18

D.24

题型:填空题

某投资者以一批甲材料作为投资取得A公司200万股普通股,每股1元,双方协议约定该批甲材料的价值为600万元(假定该价值是公允的)。A公司收到甲材料和增值税专用发票(进项税额为102万元)。该批材料的入账价值是()。

A.600万元

B.702万元

C.200万元

D.302万元

更多题库