为什么我只有#4过? 下载了数据明明一样
查看原帖
为什么我只有#4过? 下载了数据明明一样
1128098
SunShengxuan楼主2024/8/1 19:19
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
char Em[20][47] = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"};
char nEm[20][47] = {"a" ,"both", "another", "first", "second", "third"};
bool strpd(char a[], char b[]) {
	int l1 = strlen(a), l2 = strlen(b);
	if(l1 != l2) {
		return false;
	}
	for(int i = 1; i < l1; ++ i) {
		if(a[i] != b[i]) {
			return false;
		}
	}
	return true;
}
bool nstrpd(char s[]) {
	for(int i = 0; i < 6; ++ i) {
		if(strpd(s, nEm[i])) {
			return true;
		}
	}
	return false;
}
int getEm(char s[]) {
	for(int i = 0; s[i] != '\0'; ++ i) {
		for(int j = 0; j < 20; ++ j) {
			if(strpd(s, Em[j])) {
				return j + 1;
			}
		}
	}
	if(nstrpd(s)) {
		if(s[0] == 'a' || s[0] == 'f') {
			return 1;
		} else if(s[0] == 'b' || s[0] == 's') {	
			return 2;
		} else {
			return 3;
		}
	}
}
void alllow(char s[]) {
	for(int i = 0; s[i] != '\0'; ++ i) {
		s[i] = tolower(s[i]);
	}
}
char s[47];
int N[6];
int main() {
	int k = 0;
	for(int i = 0; i < 6; ++ i) {
		scanf("%s", s);
		alllow(s);
		int n = getEm(s);
		if(n != 0) {
			N[k ++] = n * n % 100;
		}
	}
	if(k == 0) {
		printf("0\n");
		return 0;
	}
	sort(N, N + k);
	for(int i = 0; i < k; ++ i) {
		if(N[i] % 10 == N[i] && i != 0) {
			printf("0");
		}
		printf("%d", N[i]);
	}
	return 0;
}
2024/8/1 19:19
加载中...