700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 参加第六届ITAT C语言程序设计大赛复赛-----数学溃败

参加第六届ITAT C语言程序设计大赛复赛-----数学溃败

时间:2019-06-30 16:57:17

相关推荐

参加第六届ITAT C语言程序设计大赛复赛-----数学溃败

早上睡过头了,差点迟到....

第一题比较简单,列出形似 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位到第9位扫描最小的数字,用n1[0]记录第一个也就是最高位数字在n[12]中的位置,然后从n1[0]位置开始到第10位寻找第二给我数字,在n[12]中的位置储存在n1[1]中,以此类推,一直到最后一个数字取完,最后输出。

源码:1#include<stdio.h>2intmain()

3{

4

5intn[12]={7,8,6,2,4,5,6,1,3,9,8,4};

6intn1[4]={0,0,0,0};

7inti=0,j=0,a=3;

8

9for(i=1;i<=12-a;i++)

10{

11if(n[n1[j]]>n[i])

12{

13n1[j]=i;

14}

15}

16for(i=1;i<4;i++)

17n1[i]=n1[i-1]+1;

18

19for(i=1;i<4;i++)

20{

21for(j=n1[i];j<12-a;j++)

22{

23if(n[n1[i]]>n[j+1])

24{

25n1[i]=j+1;

26}

27}

28--a;

29}

30

31i=0;

32for(j=0;j<12;j++)

33{

34if(n1[i]!=j)

35printf("%d",n[j]);

36else

37{++i;continue;}

38}

39printf(",");

40for(i=0;i<4;i++)

41printf("%d",n[n1[i]]);

42getchar();

43return0;

44}

Ps:着实收发和代码规范不是很好,有优化建议提一下 嘿嘿。第三题是道附加题,比较偏数学知识,共有三小题:1.给定三个坐标点,求这三点组成的三角形是属于什么类型三角形(锐角,直角,钝角)2.就求第一问中这个三角形的外接圆的面积3.给定5个坐标点,求经过这5个点的最小圆的面积第一问很简单,设个二维数组,然后利用坐标求各边的值,最后利用相应的公式 判断a2+b2和c2的关系 得出相应的结果第二问和第三问,没有做,因为之前的数学知识没有复习到圆部分,所以放弃了,但是大牛说可以利用高精度算法实现,正在研究中......

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。