分数统计降幂排列c语言,2016C语言习题全集及答案:附加题05.doc

此篇博客介绍了如何使用C语言编写程序,通过链表结构表示和操作多项式,并展示了如何合并两个有序链表以及填充n阶纵横图(魔方阵)。涉及链表的创建、合并和多项式运算,同时包含数学和编程技巧的应用。

2016C语言习题全集及答案:附加题05

附加题

建立两个链表,来表示x幂的两个多项式,链表中的结点有三个字段coef、exp和next,分别表示多项式每项的系数、x的指数及指向下一项的指针。编一程序,按x的降幂输入多项式的系数和指数,建立两个链表,然后编一函数来完成把两个多项式的链表叠加到第三个链表中。例如:

第一个多项式为: -4x8 +5x6 +3x4 -4x的链表为:

-4 8 5 6 3 4 -4 1

第二个多项式为: 5x9 -5x8 -3x4 +7x的链表为:

5 9 -9 8 5 6 3 1

结果的多项式为: 5x9 -9x8 +5x6 +3x

5 9 -9 8 5 6 3 1

编程把链表(1)变成链表(2)。

head

(1) data next data next data next

记录1 记录2 记录3

data next data next

记录4 记录5

head

(2) data next data next data next

记录1 记录2 记录3

data next data next

记录4 记录5

把下面(1)、(2)两个有序链表合并为一个链表(3),合并之后链表仍有序。

(1) first 10 30 90

(2) second 45 100

(3) first

10 30 45 90 100

填写n阶(n>2)纵横图(纵横图又称魔方阵、幻方)。

纵横图是指这样一种方阵,它的每一行和每一列以及两个对角线上的每一元素之和都是相等的。最普通的纵横图由 1到n2个自然数构成。沿每行、每列及对角线的各数之和为 1/2×n(n2+1),称为纵横图常数。

例如:3×3的纵横图如下图所示,它的每行、每列及对角线各数之和为1/2×3×(9+1)=15。一个 n阶纵横图便是一个n×n的矩阵。每个格中放一个数,共可放n2个数,请你把整数 1到整数n2分别放入各格中,且使每行的和、每列的和以及两个对角线上的和均相等。

(一)填写方法分析:

1)奇阶纵横图

举个最简单的例子(3阶纵横图的填法)。 画一正方形,把它分为九个格,按左下图的样子依斜线方向将1~9各数顺序填入图内。正方形外的数字填到图内与它相反的那面(仍在原行),结果得到右下图的正方形。

3

2 7 6 9 5 1 4 3 8 2 6

1 5 9

4 8

7

当n为奇数,n阶方阵共有n2个数,排序为1、2、…、n2。按数的排序依次填入 n阶方阵中每个空格。以下图的5阶方阵为例:

11 10 4 23 17 18 12 6 5 24 25 19 13 7 1 2 21 20 14 8 9 3 22 16 15填法如下:

⑴先将1填在行、列位置为((n+1)/2,n),即1填在((5+1)/2,5)

=(3,5)的3行、5列位置上;

⑵继续在该位置所在的对角线上(斜线)上,由左上往右下依次填;

⑶若列出界,则当前行加1,以n为模的余数为应填的列数。

⑷若行出界, 则当前行加1,以n为模的余数为应填的行数。

⑸若应填的位置上行、列并未出界,却已填上它数,应在当前位置左横移一个

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值