Problem A
给一个小学生都会算的1位数与1位数运算的代数式,请你求出这个表达式的值。
表达式仅含+-*/四种运算,题目保证0不为除数。
Sample Input 1:
1+1
Sample Output 1:
2
Sample Input 2:
3*4
Sample OutPut2:
12
C语言解答
#include <stdio.h>
int main(void)
{
char op,n1,n2;
int res;
n1=getchar();
op=getchar();
n2=getchar();
switch(op)
{
case '+':
res=(n1-'0')+(n2-'0');
break;
case '-':
res=(n1-'0')-(n2-'0');
break;
case '*':
res=(n1-'0')*(n2-'0');
break;
case '/':
res=(n1-'0')/(n2-'0');
break;
default:
break;
}
printf("%d\n",res);
return 0;
}
Python解答
expr=input()
print(int(eval(expr)))
Problem B
现在小学生也在学习基本的编程,课程目标是让小学生能够有基本的算法思想,并不涉及复杂的数据和实现细节与原理。LOGO语言就非常适合小学生学习,它通过绘图的方式来直观的表现出如何用程序代码控制事物。例如控制台上初始给出一个点,使用语句FD 1/1 表示将控制台上的点Forward 1/1的距离,即,向当前方向移动1的距离,这样就画出一条线段。语句LT 60则表示当前朝向向左转60度,接着再使用语句FD 1/1就画出一条与之前的直线夹角为120度的一条线段,这时控制台上就有绘制出了一条折线段。
现在的任务是输出一段能绘制分形的LOGO语言的程序代码。
如果你还对分形不了解,下面我们先介绍一下分形:
分形(Fractal) 是一个几何形状可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状,即具有自相似的性质。自然界中一定程度上具有分形的性质的事物有云朵、闪电、植物根系、雪花等等。著名的科赫曲线就是一种分形,它绘制的是形态类似雪花的图案。
以下是0阶到3阶的科赫曲线:
本题的任务只要求画出科赫曲线的一部分即可,具体要求为:
输入:
1行,1个数字n,表示图形的阶数 (0<n<10) ( 0 < n < 10 )
输出:
能绘制上述图形的LOGO程序代码
如果你有递归的思想,那么应该不难看出,这个问题就是一个递归的形式,我们应该先把题目描述转化成算法步骤:
绘制长为x的图形:
如果x已经不能再分成x/3,就画出长为x的直线。
先画长为x/3的图形,左转60度,画出长为x/3的图形,左转240度,画出长为x/3的图形,左转60度,画出长为x/3的图形,画完。
这样就有了程度的基本框架,再把相应的LOGO语言的指令填入,就是此题的答案了。
本题C++和python的程序代码不再赘述
C语言解答
#include <stdio.h>
#include <math.h>
void Fractal(int n,int level)
{
int p=pow(3,n);
if(level==1)
{
printf("FD 1/%d\n",p);
printf("LD 60\n");
printf("FD 1/%d\n",p);
printf("LD 240\n");
printf("FD 1/%d\n",p);
printf("LD 60\n");
printf("FD 1/%d\n",p);
}
else
{
Fractal(n,level-1);
printf("LD 60\n");
Fractal(n,level-1);
printf("LD 240\n");
Fractal(n,level-1);
printf("LD 60\n");
Fractal(n,level-1);
}
}
void output(int n)
{
Fractal(n,n);
}
int main(void)
{
int n;
scanf("%d",&n);
output(n);
return 0;
}
Problem C
给出一个含有N (0 < N < 200000)个数字的数列,请你对它排序,每个数的范围均处于 [−