共三大题,两个小时完成。
一、螺旋方阵
问题描述:
任给正整数 n(n<=19) ,试按如下方式输出螺旋方阵
输入样例:3
输出样例:
7 8 1
6 9 2
5 4 3
输入样例:
4
输出样例:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
二、砝码称重
问题描述:
设有 1 克、2 克、5 克、10克、20克、50克的砝码若干枚,问这些砝码可称出多少种不同的重量。设砝码的总重不超过1000克。
输入样例:
3 4 5 0 2 7
输出样例:
total=426
三、数塔问题
问题描述:
设有下列形状的数塔,共有 K 层,最底层有 N 个数(如下图):
11 19 13 28 14 39 22
2 3 4 3 5 3 6 4
图中:K=4,N=8。
现给出最下面 2 层数塔中的数,同时知道,倒数第二层中的数是由倒数第一层中的数经过运算产生的,其运算规则如下:(即由 x,y 通过运算产生 z)
1、最多只能有 2 个运算符,也可以是 0 个运算,运算符有+、-、*、/,且无优先级之分,如3+2*4=20,4*4-2=14
2、运算的结果,最下面的 2 层是整数,但后面的数可能是多字节,但最多为20位数字。
3、程序要求:
①、首先找出由最后一层数产生倒数第二层数的运算公式。
②、然后利用此公式依次计算出上面层次的数。
③、最后输出顶层中的数。
如上例中,可推导出产生公式为z=y*y+x。此时第三层的各个数为:
11+19*19,19+13*13,13+28*28,28+14*14,14+39*39,39+22*22
可继续往下算出上一层的数,最后计出最顶层的数后输出。
输入样例:
5 5
4 18 48 100
1 2 3 4 5
注:第一行中第一个数为 K 层,第二个数为最底层有 N 个数
第二行为倒数第二层的数,
第三行为倒数第一层(最底层的数)
输出样例:
Found!:x*y*y
33160000000000000000(注:16个0)
2229025112064 9555148800000000
1296 41472 480000
4 18 48 100
1 2 3 4 5
注:本页已做过修改
第三题的问题描述中的图,其中的第二行倒数第二个由36改为39。
第三题的输出样例中最上面的一个数33160000000000000000,3316后面应该有16个零。