PAT A1005-1008
2024-09-07 05:23:39
A 1005 Spell It Right (20 point(s))
25分的题目,比较简单,注意N的范围,用字符串处理即可。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string>
#include <cstring> using namespace std; int main()
{
const char * numStr[]={"zero","one","two","three","four","five","six","seven","eight","nine"};
string tmpStr;
cin >> tmpStr;
int sum = ;
for(int i = ; i < tmpStr.size(); ++ i)
sum += tmpStr[i]-'';
char charArray[];
sprintf(charArray, "%d", sum);
for(int i = ; i < strlen(charArray); ++ i)
{
if(i > ) printf(" ");
printf("%s", numStr[charArray[i]-'']);
}
return ;
}
A 1006 1006 Sign In and Sign Out (25 point(s))
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string>
#include <cstring> using namespace std; int main()
{
int M, tmpHour, tmpMinute, tmpSecond, unLockTime=*, lockTime=-;
cin >> M;
string tmpStr, unLockId, lockId;
for(int i = ; i < M; ++i)
{
cin >> tmpStr;
scanf("%d:%d:%d", &tmpHour, &tmpMinute, &tmpSecond);
tmpHour = tmpHour*+tmpMinute*+tmpSecond;
if(tmpHour < unLockTime)
{
unLockId = tmpStr;
unLockTime = tmpHour;
}
scanf("%d:%d:%d", &tmpHour, &tmpMinute, &tmpSecond);
tmpHour = tmpHour*+tmpMinute*+tmpSecond;
if(tmpHour > lockTime)
{
lockId = tmpStr;
lockTime = tmpHour;
}
}
cout << unLockId << " " << lockId;
return ;
}
A 1007 Maximum Subsequence Sum (25 point(s))
经典的最大子序列和问题,注意 全为负数 和 只有负数和0 这两种情况即可,理不清题意可能会有一两个点过不去。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string>
#include <cstring> using namespace std; int main()
{
int K, tmpSt, resSt, resEnd, tmpNum, sum = -, maxSum = -;
cin >> K;
bool negFlag = true;
for(int i = ; i < K; ++ i)
{
cin >> tmpNum;
if(i==)
resSt = tmpNum;
if(tmpNum >= )
negFlag = false;
if(sum < )
{
sum = ;
tmpSt = tmpNum;
}
sum += tmpNum;
if(sum > maxSum)
{
maxSum = sum;
resSt = tmpSt;
resEnd = tmpNum;
}
}
if(negFlag)
cout << << " " << resSt << " " << tmpNum;
else
cout << maxSum << " " << resSt << " " << resEnd;
return ;
}
A 1008 Elevator (20 point(s))
一个直观的数学计算问题
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string>
#include <cstring> using namespace std; int main()
{
int N, tmpNum, tmpFloor = , sum = ;
cin >> N;
for(int i = ; i < N; ++ i)
{
cin >> tmpNum;
if(tmpFloor < tmpNum)
sum += + *(tmpNum - tmpFloor);
else
sum += + *(tmpFloor - tmpNum);
tmpFloor = tmpNum;
}
cout << sum;
return ;
}
最新文章
- 优才网Go名库讲解全套教程
- ABAP开发顾问必备:SAP ABAP开发技术总结
- Docker+OpenvSwitch搭建VxLAN实验环境
- 递归算法(三)&mdash;&mdash;不借助四则运算实现加法
- hmtl 中的定位
- MoveTo和MoveBy
- select * from (select P.*,ROWNUM RN FROM(select * from Mp_Relatedart where pubbaseid=785 order by ID ASC )P)M WHERE M.RN>;2 and M.RN <;= 7
- iOS MBProgressHUD 之带底板的加载提示
- 转:HTML错误编号大全
- 手把手教你从基础学习JQuery
- Docker入门书籍
- python框架django-web层
- Failed at the @ watch script &#39;cross-env NODE_ENV=development 使用cross-env解决跨平台设置NODE_ENV的问题
- sqlserver修改计算机名称。
- python的生成器(斐波拉契数列(Fibonacci))
- ES6快速入门(二)数据结构
- esay-ui学习笔记(一)
- k8s的imagePullSecrets如何生成及使用
- android 下的网络图片加载
- ubuntu server 安装 mantis bug tracker 中文配置