您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页(NOIP)数组作业二

(NOIP)数组作业二

来源:叨叨游戏网
1.读入一个十进制自然数,要求将其转换成二进制数后输出。

分析:将十进数转换成二进制数,一般采用除二取余法。如果用一个数组b来存放二进制数,可以依次把所得的余数存入b[0]、b[1]、…、b[n],最后按b[n]、b[n-1]、…、b[1]、b[0]的顺序输出这些余数,就得到了所求的二进制数。

2.输入一串字符,字符个数不超过100,且以“.”结束,请判断它们是否构成回文。若是回文,则输出'Yes„,否则输出'No'。

分析:所谓回文指从左到右和从右到左读一串字符的值是一样的,如12321,ABCBA,AA等。先读入要判断的一串字符(存入数组letter中),并统计这串字符的长度,然后首尾字符比较,若相等则取下一对字符再比较,……,就可以判断出是否为回文。

3.输入一个以„.‟结束的字符串,统计并输出其中各小写字母出现的次数。

分析:引入一个下标类型为字符子界的数组num,用于存放字符串中各小写字母出现的次数。例如用num[„a‟]记录字母a出现的次数。开始时应将num的每个元素置成0,当读入一个ch后,若ch是小写字母,则让num[ch]加1。

参 var

i,j,n:longint;

b:array [0..31] of 0..1; begin

readln(n); write(n,'=('); i:=0;

while( n<>0 )do begin

( b[i]:=n mod 2 );

i:=i+1; {指定下一个余数的存放位置} n:=n div 2 {产生的商将作为新的被除数} end;

for j:=( i-1 downto 0 )do write(b[j]); writeln(')2') end.

var

letter:array[1..100]of char; i,j:0..100; ch:char; begin

read(ch);

( i:=0 ); while ch<>'.' do begin i:=i+1;

( letter[i]:=ch ); read(ch) end;

( j:=1 );

while (jif ( j>=i )then writeln('Yes') else writeln('No'); end. var

num:array['a'..'z'] of integer; ch:char; begin

for ch:='a' to 'z' do( num[ch]:=0 ); read(ch);

while ch<> '.' do begin

if ( (ch>='a') and (ch<='z') )then num[ch]:=num[ch]+1; ( read(ch) ); end;

for ch:=( 'a' to 'z' )do

if num[ch] <>0 then writeln(ch,' ',num[ch]); end.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务