encode.pas
来自「PASCAL光盘资料PASCAL光盘资料PASCAL光盘资料」· PAS 代码 · 共 38 行
PAS
38 行
program encode(input,output);
var word:string[7];
i,j,len,ans:longint;
function c(n:longint;r:longint):longint; {计算Cr n}
var i,cc:longint;
begin
cc:=1;
for i:=1 to r do
cc:=cc*(n+1-i) div i;
c:=cc;
end;
begin {main}
assign(input,'encode.in');
assign(output,'encode.out');
reset(input);
rewrite(output);
readln(word); {读入串}
word:=pred('a')+word;
len:=length(word)-1;
ans:=1;
for i:=2 to len do {加上长为1-(len-1)所有串后编码}
ans:=ans+c(26,i-1);
for i:=2 to len+1 do
if (word[i]>word[i-1]) then
for j:=ord(word[i-1])+1 to ord(word[i])-1 do {第i个位置为这么多字母时,编号比其小,要加上情况数}
ans:=ans+c(26-j+ord(word[1]),len-i+1)
else
begin
ans:=0;
break;
end;
writeln(ans); {输出}
close(input);
close(output);
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?