排列序数
来源:互联网 发布:淘宝零食销量排行 编辑:程序博客网 时间:2024/04/28 21:27
排列序数
* X星系的某次考古活动发现了史前智能痕迹。
* 这是一些用来计数的符号,经过分析它的计数规律如下:
*(为了表示方便,我们把这些奇怪的符号用a~q代替)
* abcdefghijklmnopq 表示0
* abcdefghijklmnoqp 表示1
* abcdefghijklmnpoq 表示2
* abcdefghijklmnpqo 表示3
* abcdefghijklmnqop 表示4
* abcdefghijklmnqpo 表示5
* abcdefghijklmonpq 表示6
* abcdefghijklmonqp 表示7
* .....
* 在一处石头上刻的符号是:
* bckfqlajhemgiodnp
* 请你计算出它表示的数字是多少?
* X星系的某次考古活动发现了史前智能痕迹。
* 这是一些用来计数的符号,经过分析它的计数规律如下:
*(为了表示方便,我们把这些奇怪的符号用a~q代替)
* abcdefghijklmnopq 表示0
* abcdefghijklmnoqp 表示1
* abcdefghijklmnpoq 表示2
* abcdefghijklmnpqo 表示3
* abcdefghijklmnqop 表示4
* abcdefghijklmnqpo 表示5
* abcdefghijklmonpq 表示6
* abcdefghijklmonqp 表示7
* .....
* 在一处石头上刻的符号是:
* bckfqlajhemgiodnp
* 请你计算出它表示的数字是多少?
* 请提交该整数,不要填写任何多余的内容,比如说明或注释。
代码如下:
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s = sc.nextLine();int q[] = new int[17]; // q[]表示的是i个字母全排列q[0] = 1;for (int i = 1; i < 17; i++){q[i] = i * q[i - 1]; // i个字母的全排列等于i的阶乘}int sum = 0; // 表示该串在其字母所有排列生成的串中的序号for (int i = 0; i < s.length(); i++){int k = 0; // k表示有多少个小的在前面for (int j = 0; j < i; j++){if (s.charAt(j) < s.charAt(i))k++;}sum = sum + q[s.length() - i - 1] * (s.charAt(i) - 'a' - k);// q[s.length()-i-1]表示第i个字母后面还有几个字母,如bdca中的b字母后还有dca三个字母// s.charAt(i)-'a'-k// 表示用当前字母减去‘a’,再减去前面比这个字母小的字母的个数,比如如bdca中的b字母前还有a这一个字母。}System.out.println(sum);}}
1 0
- 排列序数
- 排列序数
- 排列序数
- 排列序数
- 排列序数
- 蓝桥杯 排列序数
- 标题: 排列序数
- 蓝桥杯-排列序数
- 蓝桥杯模拟-排列序数
- 蓝桥 排列序数
- 序数法生成全排列
- ACM题目之排列序数
- 蓝桥杯 历届试题 排列序数
- 蓝桥杯 2014 4 排列序数
- 蓝桥杯模拟赛排列序数
- 排列序数(康托展开)
- 我排第几个和排列序数
- 蓝桥杯模拟赛2017 排列序数
- Java多线程——volatile
- java深入学习之代理
- AutoCompleteTextView, Spinner, DatePicker等控件进行程序界面设计
- 用stat命令查看文件时的三个时间点
- 马路上的路灯
- 排列序数
- android APK应用安装过程以及默认安装路径
- tomcat应用配置https
- 探究内存中栈、堆和数据区的分配和管理
- android 备份wifi状态
- 散列表
- C语言顺序表
- React+webpack开发环境的搭建
- java中按位运算