题目 | 分值 | 得分 |
---|---|---|
1056 | 25 | 0 |
1057 | 30 | 17 |
1058 | 20 | 20 |
1059 | 25 | 25 |
总分 | 100 | 62 |
做了很长时间,发现时间不够了。打开手机定时,emmm算错时间了,好像只是做了两个小时的题目。如果在坚持一下可能就更好了,以后还是8点开始做题比较好一点吧。有点小尴尬。应该找一本书跟着课本的内容进行连贯性的刷题学习比较好吧。没有出现图的题目,可能这次比较简单吧。
1056 25分 / 0分
emmm…这是什么题面,没有看懂,看了半个小时直接放弃了。一次提交也没有,也是很尴尬。后来觉得没有时间直接放弃了。
1057 30分 / 17分
按照题目含义,只是模仿栈。其中添加了关于排序问题,通过sort进行排序,还是存在超时的问题,可能有其他的思路进行优化。由于不是全分,怕误导广大网友,还是不粘贴代码了。
1058 20分 / 20分
没有用到大数模拟,所以并不是需要写很多,关键是考虑好字符串的切分和进制问题吧。在做题的过程中,理解题意有思路在敲,不然很浪费时间。其中对于二维数组传递问题,通过**date
的方法在函数之间传递。
#include
#include
#include
#include
#include
using namespace std;
int adate[4];
int bdate[4];
int date[4];
char str[234];
bool getValue(char* str, int *date)
{
int len = strlen(str);
int top = 0, num = 0;
for(int i = 0; i <= len; i++)
{
if(str[i]=='.' || str[i] =='\0')
{
date[top++] = num;
num = 0;
}
else
{
num *= 10;
num += str[i] - '0';
}
}
return true;
}
int main()
{
scanf("%s", str);
getValue(str, adate);
scanf("%s", str);
getValue(str, bdate);
int flag = 0;
for(int i = 2; i >= 0; i--)
{
date[i] = adate[i] + bdate[i] + flag;
if(i==2)
{
flag = date[i] / 29;
date[i] = date[i] % 29;
}
else if(i==1)
{
flag = date[i] / 17;
date[i] = date[i] % 17;
}
}
for(int i = 0; i < 3; i++)
{
printf("%d", date[i]);
if(i!=2)
printf(".");
else
printf("\n");
}
return 0;
}
1059 25分 / 25分
普通程设题目的样子,long int类型还进行了提示。所以不是很难,有个别点比如0=0这种情况是需要考虑到的。虽然只占着2分,但是就像那句话,学霸考100,你考98,学霸考100分因为试卷只有100分。
#include
#include
#include
#include
#include
using namespace std;
int main()
{
long int date;
scanf("%ld", &date);
if(date==1||date==0)
{
printf("%ld=%ld\n",date, date);
return 0;
}
else
printf("%ld=", date);
int top;
for(int i = 2; date!=1; i++)
{
top = 0;
while(date%i==0)
{
top++;
date = date / i;
}
if(top==1)
printf("%d", i);
else if(top>1)
printf("%d^%d", i, top);
if(top!=0&&date!=1)
printf("*");
}
printf("\n");
return 0;
}