pascal问题讲解讲解讲解!

作者&投稿:孔封 (若有异议请与网页底部的电邮联系)
(PASCAL)【基础】爬楼梯~

var n:longint;
function step(a:longint):longint;
begin
if a-1=0 then exit(1);
if a-2=0 then exit(2);
step:=step(a-1)+step(a-2);
end;
begin
readln(n);
writeln(step(n));
end.
不懂的可以提问

给你更好理解的。
这是筛法
var
n,m,i,s,p:integer;
a:array[1..10000] of integer;
begin
read(n,m);//这步不用说了吧?
for i:=1 to n do
a[i]:=1;//先全部赋值1
p:=0;s:=0;//统计人数和报数字用的
repeat
for i:=1 to n do
begin
if a[i]=0
then continue; //用于等会排除出圈者
s:=s+a[i];//不断累加(报数字)
if s=m then//出圈者
begin
write(i,' ');打印出圈者;
a[i]:=0;//明白刚才continue的意思了吧
p:=p+1;//人数减少一个;
s:=0;//重头报起。
end;
end;
until p=n;//直到人数到了
end。
其实呢,筛法的原理就是:
(1)先统一初始化,一般用for。可以赋值0,1,true,false。
(2) 在数组范围内,根据条件筛选,不符合条件的做反标记。
(3)输出结果。根据标记值输出。
所以,一般需要三个循环

你的程序最前面掉了一个var,其余没有错误,应该可以正确运行,输出结果是:
zzzaaabbbcccy

你的级别都这么高了,哪句看不明白请直说吧,我看来没有复杂语句,全都是一些for和if,你在记事本里面对齐就容易看了。

{$apptype console}
program exp;
var
  str : string; 
  len, i, j : integer; 
  nchr : array [0..25] of integer; 
  mmin : char; 
begin 
  mmin := 'z'; 
  readln(str); 
  len := length(str); 
  i := len; 
  while i >= 2 do
  begin 
    if str[i-1] < str[i] then break; 
    dec(i); 
  end;
//从后向前寻找第一个非降序的,对于题目的输入就是y,
//此时i=4,str[i-i]='y',str[i]='z'
  if i = 1 then
  begin 
    writeln('No result!'); 
    exit; 
  end; 
//下面语句输出y之前的两个z
  for j := 1 to i - 2 do write(str[j]); 
//下面这一段对nchr进行了处理,数组nchr[0]~nchr[25]分别保存'a'~'z'的次数
  fillchar(nchr, sizeof(nchr), 0); 
  for j := i to len do begin 
    if (str[j] > str[i-1]) and (str[j] < mmin) then mmin := str[j]; 
    inc(nchr[ord(str[j]) - ord('a')]); 
  end;
//下面调整mmin字符和str[i-1]的数
  dec(nchr[ord(mmin) - ord('a')]); 
  inc(nchr[ord(str[i-1]) - ord('a')]); 
//下面语句输出一个'z',mmin
  write(mmin);
//下面语句输出调整后的字符,从小到大,按个数
  for i := 0 to 25 do 
    for j := 1 to nchr[i] do 
    write(chr(i + ord('a'))); 
  writeln; 
end.


ASCII码问题
所以,7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;第33~126号(共94个)是字符,...

关于ASCII文件的问题
(ASCII)(发音为 ask-kee)的出现。ASCII 表包含 128 个数字(加上扩展ASCII一共256个数),这些数字分配给了相应的字符。ASCII 为计算机提供了一种存储数据以及与其他计算机和程序交换数据的方式。ASCII 格式的文本不包含诸如加粗、倾斜或字体等格式信息。当您使用 Microsoft 记事本或将文件作为纯文本保存在...

c语言 ascii 的疑问
一个字母加了单引号就表示这个字母是ASCII码,不加单引号就表示变量。如 c='a'就相当于c=97,因为a的ASCII码就是97,而c=a就表示把a变量的值赋给c

C++小白提问,ASCII码表问题
这是告诉你,当要从键盘 拍入 一个不可见 字符 时,可以 同时按 2个键 (构成“组合键”), 例如表格中 字符 ^G 表示 ASCII 的 响铃符号,它的 ASCII 码值 是 7. 你要从键盘拍入时 怎么 拍呢,就是 同时 按 2个键:一个是 Ctrl 键,另一个是大写的字母键G.你可以用键盘...

关于C语言ASCII码的问题
在处理字母大小写转换的时候要用到ASCII 因为大小写相差32.因为每个字母有相应的ASCII。所以字母可以做运算。也就是可以字母加密。可以字母移位。等等 0.指的是整形的时候整数0 ‘0’代表的ASCII里的0,其相应的值是48.‘\\0'是表示结束的字符。经常用这个表示循环的终止。他在ASCII里的值为0 还有在...

关于大学计算机中ASCII编码的问题
“ASCII码是一种七位信息代码,表示127种字符”,这句话可以这样理解:“ASCII码是一种七位信息代码,(理论上它)可以表示128种字符”,而目前的编码方式,将0定义为空字符了(注意,不是空格),所以“ASCII码是一种七位信息代码,(实际上它)表示127种字符”。下边那句话就是,“拓展的ASCII码...

解释标准ASCII码的基础问题
理论上说,8位指的是一个ASCII字符占用的存储空间,7位指的是它实际使用了的数据位,最高位是符号位。因为,内存一般按字节分配方便寻址和对齐,就算你要用7位的空间,也不能实际就给你7位,不然内存分配和管理会很复杂。

关于ASCII 码和一些别的东东的问题,懂计算机的进!!答得好可追加分值_百...
ASCII 码是美国信息交换标准码 (ASCII)标准的单字节字符编码方案,用于基于文本的数据。起始于50年代后期,在1967年定案。ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符。标准 ASCII 码使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号,以及...

c语言ascii代码问题
char占一个字节,也就是8个二进制位,但它表示的是有符号的类型,所以表示的范围是-128~127;uchar表示无符号的类型,所以表示的范围是0~255。

关于c语言asscll码的问题,'8'为何是54、'3'为何是49b
用来制订计算机中每个符号对应的代码。每个ASCII码以1个字节(Byte)储存,从0到数字127代表不同的常用符号,例如数字0的ASCII码是48,大写A的ASCII码是65,小写a则是97。 这些都是规定好了的,记住就行了。数字0的ASCII码是48,依次类推,字符'3'的ASCII码是51,字符'8'的ASCII码是56。

循化撒拉族自治县15083475674: 欧拉回路PASCAL标程讲解
戢茅可谱:也称一笔画问题.这里用邻接矩阵来存map,,ij,,为1则表示有边,为0则没有,为无向图. var map : array[0..100,0..100] of boolean; // 邻接矩阵 l : array[0..maxint] of integer; // 欧拉通路 degree : array[0..100] of byte; // 节点的度 n : byte; // ...

循化撒拉族自治县15083475674: Pascal 一笔画问题 解题思路 -
戢茅可谱: DFS完全可以实现 首先判断 奇点有几个只有0 或2个奇点才可能一笔画如果有2个奇点 必须从奇点开始画 DFS 从这两个奇点开始就行了0个的话 只有所有点dfs一遍了

循化撒拉族自治县15083475674: 一个PASCAL并查集的问题,请详细讲解一下 -
戢茅可谱: var father:array[1..5000]of integer; i,j,k,p,n,m:integer; Function getfather(v:integer):integer; begin if father[v]=v then exit(v); father[v]:=getfather(father[v]); getfather:=father[v]; end; Procedure merge(x,y:integer); begin x:=getfather(x); y:=getfather(y); father...

循化撒拉族自治县15083475674: Pascal约瑟夫问题 -- 选猴王. 高分悬赏 -
戢茅可谱: 汗 我想你是圆圈形的选猴王 给你解 其中 n为猴子的个数 m为报道几出列 你这里就用3~ 加分加分 const p=1000; var a: array [1..p] of integer; x,i,t,n,m,w:integer; begin read(n,m);for i:=1 to n do a[i]:=i; x:=n; i:=0; t:=0; repeat i:=i+1; if i>n then i:=i-n; ...

循化撒拉族自治县15083475674: 01 背包问题 Pascal 一位数组解法 -
戢茅可谱: 核心思想:for i:=1 to N do for j=V downto c[i] do if f[j-c[i]]+w[i]>f[j] thenf[j]=f[j-c[i]]+w[i]; 背包问题九讲-P01 0-1背包问题 在讲背包问题的时候老师说这是一个老鸟中的老鸟总结的,很全面也很简洁易懂,在此把内容贴上来,供大家一起交流学习....

循化撒拉族自治县15083475674: 请高手讲解下这道PASCAL题的意思
戢茅可谱: 利用余数,按照举例来说,符合条件的数是余数为1、2、3的数最后在加上一个余数是0的即可. program ti180; var a:array[1..100] of integer; m,n,i,j,s:integer; begin readln(n,m); s:=0; for i:=1 to n do a[i]:=i; for i:=1 to n do for j:=1 to (m-1) div 2 do if (a[i] mod m)=j then s:=s+1; writeln(s+1); readln; end.

循化撒拉族自治县15083475674: pascal拦截导弹问题的解题思路? -
戢茅可谱: 主要思想是动态规划中的求最长不上升序列. typefnode=recordshuliang,qianqu:integer;//从开始到当前导弹,能得到的最大长度end; vara,b:array[1..100] of integer;f:array[1..100] of fnode;s:ansistring;p,i,j,n,c,max:integer; beginassign(...

循化撒拉族自治县15083475674: pascal 递归的解题思路 -
戢茅可谱: 解类似f(f(f(f(f(f(f(f(f(f(x)))))))))))的问题时,当然要先做里面的才能再做外面的那么做第一个f前先要做第二个f最第二个之前,要做第三个这就是递归的初衷

循化撒拉族自治县15083475674: 爬楼梯 楼梯pascal讲解逐句讲解一下 -
戢茅可谱: program board;varn, k, i, j: integer;b: array[0..15, 0..15] of int64;function min(a, b: integer): integer;//取2个数的最小值beginif a > b thenmin := belsemin := a;end;beginassign(input, 'board.in');assign(output, 'board.out');reset(input);rewrite(output);...

循化撒拉族自治县15083475674: pascal问题,编程高手看过来题目:将字符串(只包含大写字母和
戢茅可谱: 程序参考如下:我没有理解"R和C之间以及C和字符串之间均用单个空格隔开"的意思var bin:string;procedure dectobin(a:integer); //十进制转二进制begin if a我上面说了,因为你的题目描述不完整,我只是给你个参考至少你给的输入/输出例子我是对的

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网