版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1、1024 Palindromic Number (25 分)
题目大意:输入一个数,输入一个次数,在规定次数内若这个数不断与自己倒过来的数累加得到回文数,则输出回文数与次数,不然输出最终得到的数与次数。
使用字符串储存数,方便使用reverse进行翻转,此前我使用了N种reverse的错误用法…正确用法见代码;
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string str;
string t;
void add(string b){
int l=b.length();
int up=0;
for(int i=0;i<l;i++){
str[i]=up+str[i]+b[i]-'0';
up=0;
if(str[i]>'9'){
up=1;
str[i]=str[i]-10;
}
}
if(up==1) str+='1';
reverse(str.begin(),str.end());
}
上述代码在原字符串上进行运算修改,因为原字符串本就是逆向存放各位数字的,故最后要进位时只需加"1"如何reverse即可;同时注意将字符转化为int时要减"0";
写出主函数:
int main(){
cin>>str;
int d, i;
scanf("%d", &d);
for(i=0;i<d;i++){
t=str;
reverse(t.begin(),t.end());
if(t==str) break;
add(t);
}
cout<<str<<endl;
printf("%d", i);
}
2、1025 PAT Ranking (25 分)
考验使用排序函数、结构体的一题。
首先定义结构体与排序函数:
#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>
using namespace std;
struct stu
{
long long int id;
int mark, local, local_rank, final_rank;
};
bool cmp(stu a, stu b) {
return a.mark != b.mark ? a.mark > b.mark : a.id < b.id;
}
写出主函数的输入部分,其中id输入使用%lld;将考场学生信息存入临时vector中,得出local_rank后,再存入全部学生的vector中。
使用?来完成对成绩相同的学生的排序并给予排名;
int main() {
vector<stu> final;
int N, K;
scanf("%d", &N);
for (int i = 0; i < N; i++) {
scanf("%d", &K);
vector<stu> temp(K);
for (int j = 0; j < K; j++) {
scanf("%lld %d", &temp[j].id, &temp[j].mark);
temp[j].local = i + 1;
}
sort(temp.begin(), temp.end(), cmp);
temp[0].local_rank = 1;
final.push_back(temp[0]);
for (int k = 1; k < K; k++) {
temp[k].local_rank = (temp[k].mark == temp[k - 1].mark) ? (temp[k - 1].local_rank) :( k + 1);
final.push_back(temp[k]);
}
}
对全部学生进行排序:
sort(final.begin(), final.end(), cmp);
final[0].final_rank = 1;
for (int k = 1; k < final.size(); k++) {
final[k].final_rank = (final[k].mark == final[k - 1].mark )?( final[k - 1].final_rank ):( k + 1);
}
printf("%d\n", final.size());
for (int i = 0; i < final.size(); i++) {
printf("%013lld %d %d %d\n", final[i].id, final[i].final_rank, final[i].local, final[i].local_rank);
}
return 0;
}
注意输出格式。
每次编程都有低级错误能气死我