📄 encode.pas
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -