排列序列 (康托展开)

X星系的某次考古活动发现了史前智能痕迹。 
这是一些用来计数的符号,经过分析它的计数规律如下: 
(为了表示方便,我们把这些奇怪的符号用a~q代替)

abcdefghijklmnopq 表示0 
abcdefghijklmnoqp 表示1 
abcdefghijklmnpoq 表示2 
abcdefghijklmnpqo 表示3 
abcdefghijklmnqop 表示4 
abcdefghijklmnqpo 表示5 
abcdefghijklmonpq 表示6 
abcdefghijklmonqp 表示7 
…..

在一处石头上刻的符号是: 
bckfqlajhemgiodnp

请你计算出它表示的数字是多少?

请提交该整数,不要填写任何多余的内容,比如说明或注释。

#include<iostream>
using namespace std;
long long a[20]={1}; 
char str[]="bckfqlajhemgiodnp";
void jc(int i)
{
	a[i] = a[i-1]*i;
}
int main()
{
	int i,j;
	long long num=0,t;
	for (i=1; i<=17; i++)//求出阶乘 
	{
		jc(i);
	}
	for (i=0; i<17; i++)
	{
		t = 0;
		for (j=i+1; j<17; j++)
		{
			if (str[i] > str[j])
			{
				t++; 
			}
		}
		num += t * a[17-i-1];
	}
	cout<<num;
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值