PAT乙级1044 火星数字 (20 分)

这是一篇关于解决PAT乙级编程题1044的博客,作者遇到了测试点34无法通过的问题,正在寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://pintia.cn/problem-sets/994805260223102976/problems/994805279328157696

测试点34不过,没找到原因

#include <iostream>
#include <map>
#include <string>
using namespace std;
int main(){
	string s1[13] = { "tret" ,"jan", "feb", "mar","apr","may", "jun", "jly","aug", "sep", "oct", "nov","dec" },
		s2[13] = { "tret","tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou" }
			,tmps;
	map<string, int> g, s;
	g["jan"] = 1, g["feb"] = 2, g["mar"] = 3, g["apr"] = 4, g["may"] = 5, g["jun"] = 6,
	g["jly"] = 7, g["aug"]= 8, g["sep"] = 9, g["oct"] = 10, g["nov"] = 11, g["dec"] = 12;
	s["tam"] = 1, s["hel"] = 2, s["maa"] = 3, s["huh"] = 4, s["tou"] = 5, s["kes"] = 6,
	s["hei"] = 7, s["elo"] = 8, s["syy"] = 9, s["lok"] = 10, s["mer"] = 11, s["jou"] = 12;
	int n;	cin >> n; getchar();
	for(int i = 0; i < n; i++){
		getline(cin, tmps);
		//地球文 
		if(tmps[0] >= '0' && tmps[0] <= '9'){
			int tmp1 = 0, shiwei, gewei;
			for(int j = 0; j < tmps.size(); j++)
				tmp1 = 10*tmp1 + tmps[j] - '0';
			shiwei = tmp1 / 13;
			gewei = tmp1 % 13;
			if(shiwei && gewei)	cout << s2[shiwei] << " " << s1[gewei] << endl;
			else if(shiwei && !gewei)	cout << s2[shiwei] << endl;
			else cout << s1[gewei] << endl;
		}else{//火星文 
			string s3 = "", s4 = "";
            s3 = s3 + tmps[0]+tmps[1]+tmps[2];
			if(tmps.size() > 4){
				s4 = s4 + tmps[4]+tmps[5]+tmps[6];
                cout << g[s4] + s[s3]*13 << endl;
            }
            else
			    cout << g[s3] + s[s3]*13 << endl;
		}
	}
	return 0;
}
### 关于PAT乙级1044题目的解析 对于PAT乙级1044题目,虽然未直接提供该具体编号的解答细节[^1],但是可以基于相似类型的编程挑战来构建解决方案。此题通常涉及字符串处理或简单的算法逻辑。 #### 题目概述 假设PAT乙级1044涉及到某种特定的任务,比如数据结构操作或是基础算法的应用。为了更好地理解并解决这个问题,先要明确题目要求的具体功能是什么——可能是关于数组、链表的操作或者是字符序列的变换等。 #### 解决方案设计 考虑到这类问题的一般特性,下面是一个可能的设计框架: - **输入读取**:通过标准输入获取必要的参数。 - **核心计算/转换过程**:依据题目需求执行相应的运算或者模式匹配。 - **结果输出**:按照指定格式打印出答案。 #### 示例代码实现 (C语言) ```c #include <stdio.h> #include <string.h> // 假设函数用于解决问题的核心部 void solveProblem(char *inputString) { // 这里放置具体的业务逻辑代码 } int main() { char inputBuffer[256]; // 获取输入直到遇到文件结束符EOF while(fgets(inputBuffer, sizeof(inputBuffer), stdin)) { // 移除换行符或其他不必要的结尾字符 inputBuffer[strcspn(inputBuffer, "\r\n")] = '\0'; // 调用solveProblem处理每一行的数据 solveProblem(inputBuffer); } return 0; } ``` 上述模板展示了如何接收来自用户的多行输入,并逐行调用`solveProblem()`来进行进一步处理。实际应用时应根据具体情况调整这段代码中的各个组件以满足PAT乙级1044的确切要求。 #### 测试与验证 编写几个测试案例可以帮助确认程序行为是否符合预期。确保覆盖各种边界条件和异常情况下的表现尤为重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值