早上睡过头了,差点迟到....
第一题比较简单,列出形似 AB*CD=BA*DC 形式的所有等式,每个字母代表一个数字。 本人的做法是:
设两个数字 int X、Y,即 X=AB, Y=CD, 那么 BA=X/10+X%10*10 CD同上。 然后判断 AB*CD==BA*DC即可《此为送分题,本人的代码就不贴出来了》
第二题稍微有些难度: 有变量 n=786245613984 让求出删除其中8个数字以后,按原序列的最小数字,并按原序列顺序输出被删除的数字与 删除后的最小数字 中间用逗号相隔。题目提示可以用字符数组求解,我依然用int数组求解 ,分析:
已知:有变量 n=786245613984
目标:让求出删除其中8个数字以后,按原序列排序的最小数字,
附加结果:并按原序列输出被删除的数字与 删除后的最小数字 中间用逗号相隔
源码:
1 #include<stdio.h>
2
int
main()
3 {
4
5 int n[ 12 ]={ 7 , 8 , 6 , 2 , 4 , 5 , 6 , 1 , 3 , 9 , 8 , 4 };
6 int n1[ 4 ]={ 0 , 0 , 0 , 0 };
7 int i= 0 ,j= 0 ,a= 3 ;
8
9 for (i= 1 ;i<= 12 -a;i++)
10 {
11 if (n[n1[j]]>n[i])
12 {
13 n1[j]=i;
14 }
15 }
16 for (i= 1 ;i< 4 ;i++)
17 n1[i]=n1[i- 1 ]+ 1 ;
18
19 for (i= 1 ;i< 4 ;i++)
20 {
21 for (j=n1[i];j< 12 -a;j++)
22 {
23 if (n[n1[i]]>n[j+ 1 ])
24 {
25 n1[i]=j+ 1 ;
26 }
27 }
28 --a;
29 }
30
31 i= 0 ;
32 for (j= 0 ;j< 12 ;j++)
33 {
34 if (n1[i]!=j)
35 printf( " %d " ,n[j]);
36 else
37 {++i; continue ;}
38 }
39 printf( " , " );
40 for (i= 0 ;i< 4 ;i++)
41 printf( " %d " ,n[n1[i]]);
42 getchar();
43 return 0 ;
44 }
3 {
4
5 int n[ 12 ]={ 7 , 8 , 6 , 2 , 4 , 5 , 6 , 1 , 3 , 9 , 8 , 4 };
6 int n1[ 4 ]={ 0 , 0 , 0 , 0 };
7 int i= 0 ,j= 0 ,a= 3 ;
8
9 for (i= 1 ;i<= 12 -a;i++)
10 {
11 if (n[n1[j]]>n[i])
12 {
13 n1[j]=i;
14 }
15 }
16 for (i= 1 ;i< 4 ;i++)
17 n1[i]=n1[i- 1 ]+ 1 ;
18
19 for (i= 1 ;i< 4 ;i++)
20 {
21 for (j=n1[i];j< 12 -a;j++)
22 {
23 if (n[n1[i]]>n[j+ 1 ])
24 {
25 n1[i]=j+ 1 ;
26 }
27 }
28 --a;
29 }
30
31 i= 0 ;
32 for (j= 0 ;j< 12 ;j++)
33 {
34 if (n1[i]!=j)
35 printf( " %d " ,n[j]);
36 else
37 {++i; continue ;}
38 }
39 printf( " , " );
40 for (i= 0 ;i< 4 ;i++)
41 printf( " %d " ,n[n1[i]]);
42 getchar();
43 return 0 ;
44 }
Ps:着实收发和代码规范不是很好,有优化建议提一下 嘿嘿。
第三题是道附加题,比较偏数学知识,共有三小题:
1.给定三个坐标点,求这三点组成的三角形是属于什么类型三角形(锐角,直角,钝角)
2.就求第一问中这个三角形的外接圆的面积
3.给定5个坐标点,求经过这5个点的最小圆的面积
第一问很简单,设个二维数组,然后利用坐标求各边的值,最后利用相应的公式 判断a2+b2和c2的关系 得出相应的结果
第二问和第三问,没有做,因为之前的数学知识没有复习到圆部分,所以放弃了,但是大牛说可以利用高精度算法实现,正在研究中......