为啥只有第十个WA啊啊
  • 板块P1246 编码
  • 楼主Chenxi1114
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/26 09:59
  • 上次更新2024/7/26 11:00:32
查看原帖
为啥只有第十个WA啊啊
1384178
Chenxi1114楼主2024/7/26 09:59
#include <stdio.h>
#include <string.h>
//计算选择数
int c(int m, int n) {
	int ans = 1;
	if (m == 0 || m == n) {
		return ans;
	} else {
		for (int i = n; i > n - m; i--) {
			ans *= i;
		}
		for (int i = m; i > 1; i--) {
			ans /= i;
		}
		return ans;
	}
}
int main() {
	char a[6] = {};
	scanf("%[a-z]", a);
	//判断输入的单词是否正确
	int l = strlen(a);
	for (int i = 0; i < l - 1; i++) {
		if (a[i] >= a[i + 1]) {
			printf("0");
			return 0;
		}
	}
	int cod = 1;
	//计算所有位数小于l的单词数
	for (int i = l - 1; i > 0; i--) {
		cod += c(i, 26);
	}
	//计算位数相同时编码小于本单词的单词数
	for (int i = 0; i < l; i++) {

		if (i == 0) {
			for (char j = 'a'; j < a[i]; j++) {
				cod += c(l - 1 - i, 'z' - j);
			}
		} else {
			for (char j = a[i - 1] + 1; j < a[i]; j++) {
				cod += c(l - 1 - i, 'z' - j);
			}
		}
	}
	printf("%d", cod);
	return 0;
}
2024/7/26 09:59
加载中...