二维数组蓝桥杯2017之承压计算

第三题:承压计算
X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。

每块金属原料的外形、尺寸完全一致,但重量不同。
金属材料被严格地堆放成金字塔形。

                             7 
                            5 8 
                           7 8 8 
                          9 2 7 2 
                         8 1 4 9 1 
                        8 1 8 8 4 1 
                       7 9 6 1 4 5 4 
                      5 6 5 5 6 9 5 6 
                     5 5 4 7 9 3 5 5 1 
                    7 5 7 9 7 4 7 3 3 1 
                   4 6 4 5 5 8 8 3 2 4 3 
                  1 1 3 3 1 6 6 5 5 4 4 2 
                 9 9 9 2 1 9 1 9 2 9 5 7 9 
                4 3 3 7 7 9 3 6 1 3 8 8 3 7 
               3 6 8 1 5 3 9 5 8 3 8 1 8 3 3 
              8 3 2 3 3 5 5 8 5 4 2 8 6 7 6 9 
             8 1 8 1 8 4 6 2 2 1 7 9 4 2 3 3 4 
            2 8 4 2 2 9 9 2 8 3 4 9 6 3 9 4 6 9 
           7 9 7 4 9 7 6 6 2 8 9 4 1 8 1 7 2 1 6 
          9 2 8 6 4 2 7 9 5 4 1 2 5 1 7 3 9 8 3 3 
         5 2 1 6 7 9 3 2 8 9 5 5 6 6 6 2 1 8 7 9 9 
        6 7 1 8 8 7 5 3 6 5 4 7 3 4 6 7 8 1 3 2 7 4 
       2 2 6 3 5 3 4 9 2 4 5 7 6 6 3 2 7 2 4 8 5 5 4 
      7 4 4 5 8 3 3 8 1 8 6 3 2 1 6 2 6 4 6 3 8 2 9 6 
     1 2 4 1 3 3 5 3 4 9 6 3 8 6 5 9 1 5 3 2 6 8 8 5 3 
    2 2 7 9 3 3 2 8 6 9 8 4 4 9 5 8 2 6 3 4 8 4 9 3 8 8 
   7 7 7 9 7 5 2 7 9 2 5 1 9 2 6 5 3 9 3 5 7 3 5 4 2 8 9 
  7 7 6 6 8 7 5 5 8 2 4 7 7 4 7 2 6 9 2 1 8 2 9 8 5 7 3 6 
 5 9 4 5 5 7 5 5 6 3 5 3 9 5 8 9 5 4 1 2 6 1 4 3 5 3 2 4 1 
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 

其中的数字代表金属块的重量(计量单位较大)。
最下一层的X代表30台极高精度的电子秤。

假设每块原料的重量都十分精确地平均落在下方的两个金属块上,
最后,所有的金属块的重量都严格精确地平分落在最底层的电子秤上。
电子秤的计量单位很小,所以显示的数字很大。

工作人员发现,其中读数最小的电子秤的示数为:2086458231

请你推算出:读数最大的电子秤的示数为多少?

解法:
之前在学校做过这类题,个人习惯喜欢用一个二维数组,从每一行的0开始存储,不是按照数据的形状来存.不过因为精度的原因,我决定使用java 的BigDeciaml二维数组来进行计算

import java.math.BigDecimal;
import java.util.Scanner;

import javax.xml.transform.Source;

public class Main{
	
	
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		
		BigDecimal[][] data = new BigDecimal[30][30];
		
		//这里要赋初值为0,因为都是一个类的形式,不赋初值的话就是null,不是想要的0
		for(int i=0;i<30;i++) {
			for(int j=0;j<=i;j++) {
				data[i][j] = new BigDecimal(0);
			}
		}
		
		//这里进行输入数据
		for(int i = 0;i<29;i++) {
			for(int j = 0;j<=i;j++) {
				int num = scanner.nextInt();
				BigDecimal temp = new BigDecimal(num);
				data[i][j] = temp;
			}
		}
		//打印一下输入的数据是否符合预期
		System.out.println("下面是输入的结果");
		for(int i=0;i<30;i++) {
			for(int j=0;j<=i;j++) {
				System.out.print(data[i][j]+" ");
			}
			System.out.println();
		}
		//调用我们的计算方法
		jisuan(data);
		
		//看一下计算的结果
		System.out.println("下面是运行的结果");
		for(int i=0;i<30;i++) {
			for(int j=0;j<=i;j++) {
				System.out.print(data[i][j]+" ");
			}
			System.out.println();
		}
		
		//找到最后一行的最大最小值
		BigDecimal min = data[29][0];
		BigDecimal max = data[29][0];
		for(int i = 0 ; i<30;i++) {
			if(data[29][i].compareTo(min)<0) {
				min = data[29][i];
			}
			if(data[29][i].compareTo(max)>0) {
				max = data[29][i];
			}
		}
		System.out.println("min:"+min);
		System.out.println("max:"+max);
		//这里尤其重要,因为没有参与过这种类型的题,打印出来发现并没有题目给的最小值,以为自己算法写错了,原来进行了处理才得到的结果为整数,那么我的做法就是 把题目给的数除以我算出来的最小值,然后就得到了这个倍数,接着用这个倍数乘以我算出来的最大值,也就得到了题目要求的整数
		BigDecimal temp = new BigDecimal(2086458231);
		temp = temp.divide(min);
		System.out.println(max.multiply(temp));
		
	}
	
	//也就是这个计算算法
	public static void jisuan(BigDecimal[][] data) {
		for(int i = 0;i<29;i++) {
			for(int j = 0;j<=i;j++) {
				data[i+1][j] = data[i+1][j].add(data[i][j].divide(new BigDecimal(2)));
				data[i+1][j+1] = data[i+1][j+1].add(data[i][j].divide(new BigDecimal(2)));
				
			}
		}
	}
	
}

看一下结果
7
5 8
7 8 8
9 2 7 2
8 1 4 9 1
8 1 8 8 4 1
7 9 6 1 4 5 4
5 6 5 5 6 9 5 6
5 5 4 7 9 3 5 5 1
7 5 7 9 7 4 7 3 3 1
4 6 4 5 5 8 8 3 2 4 3
1 1 3 3 1 6 6 5 5 4 4 2
9 9 9 2 1 9 1 9 2 9 5 7 9
4 3 3 7 7 9 3 6 1 3 8 8 3 7
3 6 8 1 5 3 9 5 8 3 8 1 8 3 3
8 3 2 3 3 5 5 8 5 4 2 8 6 7 6 9
8 1 8 1 8 4 6 2 2 1 7 9 4 2 3 3 4
2 8 4 2 2 9 9 2 8 3 4 9 6 3 9 4 6 9
7 9 7 4 9 7 6 6 2 8 9 4 1 8 1 7 2 1 6
9 2 8 6 4 2 7 9 5 4 1 2 5 1 7 3 9 8 3 3
5 2 1 6 7 9 3 2 8 9 5 5 6 6 6 2 1 8 7 9 9
6 7 1 8 8 7 5 3 6 5 4 7 3 4 6 7 8 1 3 2 7 4
2 2 6 3 5 3 4 9 2 4 5 7 6 6 3 2 7 2 4 8 5 5 4
7 4 4 5 8 3 3 8 1 8 6 3 2 1 6 2 6 4 6 3 8 2 9 6
1 2 4 1 3 3 5 3 4 9 6 3 8 6 5 9 1 5 3 2 6 8 8 5 3
2 2 7 9 3 3 2 8 6 9 8 4 4 9 5 8 2 6 3 4 8 4 9 3 8 8
7 7 7 9 7 5 2 7 9 2 5 1 9 2 6 5 3 9 3 5 7 3 5 4 2 8 9
7 7 6 6 8 7 5 5 8 2 4 7 7 4 7 2 6 9 2 1 8 2 9 8 5 7 3 6
5 9 4 5 5 7 5 5 6 3 5 3 9 5 8 9 5 4 1 2 6 1 4 3 5 3 2 4 1
下面是输入的结果
7
5 8
7 8 8
9 2 7 2
8 1 4 9 1
8 1 8 8 4 1
7 9 6 1 4 5 4
5 6 5 5 6 9 5 6
5 5 4 7 9 3 5 5 1
7 5 7 9 7 4 7 3 3 1
4 6 4 5 5 8 8 3 2 4 3
1 1 3 3 1 6 6 5 5 4 4 2
9 9 9 2 1 9 1 9 2 9 5 7 9
4 3 3 7 7 9 3 6 1 3 8 8 3 7
3 6 8 1 5 3 9 5 8 3 8 1 8 3 3
8 3 2 3 3 5 5 8 5 4 2 8 6 7 6 9
8 1 8 1 8 4 6 2 2 1 7 9 4 2 3 3 4
2 8 4 2 2 9 9 2 8 3 4 9 6 3 9 4 6 9
7 9 7 4 9 7 6 6 2 8 9 4 1 8 1 7 2 1 6
9 2 8 6 4 2 7 9 5 4 1 2 5 1 7 3 9 8 3 3
5 2 1 6 7 9 3 2 8 9 5 5 6 6 6 2 1 8 7 9 9
6 7 1 8 8 7 5 3 6 5 4 7 3 4 6 7 8 1 3 2 7 4
2 2 6 3 5 3 4 9 2 4 5 7 6 6 3 2 7 2 4 8 5 5 4
7 4 4 5 8 3 3 8 1 8 6 3 2 1 6 2 6 4 6 3 8 2 9 6
1 2 4 1 3 3 5 3 4 9 6 3 8 6 5 9 1 5 3 2 6 8 8 5 3
2 2 7 9 3 3 2 8 6 9 8 4 4 9 5 8 2 6 3 4 8 4 9 3 8 8
7 7 7 9 7 5 2 7 9 2 5 1 9 2 6 5 3 9 3 5 7 3 5 4 2 8 9
7 7 6 6 8 7 5 5 8 2 4 7 7 4 7 2 6 9 2 1 8 2 9 8 5 7 3 6
5 9 4 5 5 7 5 5 6 3 5 3 9 5 8 9 5 4 1 2 6 1 4 3 5 3 2 4 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
下面是运行的结果
7
8.5 11.5
11.25 18.00 13.75
14.625 16.625 22.875 8.875
15.3125 16.6250 23.7500 24.8750 5.4375
15.65625 16.96875 28.1875 32.3125 19.15625 3.71875
14.828125 25.312500 28.578125 31.25000 29.734375 16.437500 5.859375
12.4140625 26.0703125 31.9453125 34.9140625 36.4921875 32.0859375 16.1484375 8.9296875
11.20703125 24.24218750 33.00781250 40.42968750 44.70312500 37.28906250 29.11718750 17.53906250 5.46484375
12.603515625 22.724609375 35.62500000 45.71875000 49.56640625 44.99609375 40.20312500 26.32812500 14.501953125 3.732421875
10.3017578125 23.6640625000 33.1748046875 45.67187500 52.642578125 55.281250000 50.599609375 36.26562500 22.4150390625 13.1171875000 4.8662109375
6.15087890625 17.98291015625 31.41943359375 42.42333984375 50.1572265625 59.9619140625 58.9404296875 48.4326171875 34.34033203125 21.76611328125 12.99169921875 4.43310546875
12.075439453125 21.066894531250 33.701171875000 38.921386718750 47.290283203125 64.05957031250 60.45117187500 62.68652343750 43.386474609375 37.053222656250 22.378906250000 15.712402343750 11.216552734375
10.0377197265625 19.5711669921875 30.384033203125 43.311279296875 50.1058349609375 64.6749267578125 65.25537109375 67.56884765625 54.0364990234375 43.2198486328125 37.716064453125 27.045654296875 16.4644775390625 12.6082763671875
8.01885986328125 20.80444335937500 32.97760009765625 37.8476562500000 51.70855712890625 60.39038085937500 73.96514892578125 71.412109375000 68.80267333984375 51.62817382812500 48.46795654296875 33.3808593750000 29.75506591796875 17.53637695312500 9.30413818359375
12.009429931640625 17.411651611328125 28.891021728515625 38.412628173828125 47.778106689453125 61.049468994140625 72.177764892578125 80.688629150390625 75.107391357421875 64.215423583984375 52.048065185546875 48.924407958984375 37.567962646484375 30.645721435546875 19.420257568359375 13.652069091796875
14.0047149658203125 15.7105407714843750 31.1513366699218750 34.6518249511718750 51.0953674316406250 58.4137878417968750 72.6136169433593750 78.4331970214843750 79.8980102539062500 70.6614074707031250 65.1317443847656250 59.4862365722656250 47.2461853027343750 36.1068420410156250 28.0329895019531250 19.5361633300781250 10.8260345458984375
9.00235748291015625 22.85762786865234375 27.4309387207031250 34.9015808105468750 44.8735961914062500 63.7545776367187500 74.5137023925781250 77.5234069824218750 87.1656036376953125 78.2797088623046875 71.8965759277343750 71.3089904785156250 59.3662109375000000 44.6765136718750000 41.0699157714843750 27.7845764160156250 21.18109893798828125 14.41301727294921875
11.501178741455078125 24.929992675781250000 32.144283294677734375 35.1662597656250000 48.8875885009765625 61.3140869140625000 75.1341400146484375 82.0185546875000000 84.34450531005859375 90.72265625000000000 84.08814239501953125 75.6027832031250000 66.3376007080078125 60.0213623046875000 43.8732147216796875 41.4272460937500000 26.482837677001953125 18.797058105468750000 13.206508636474609375
14.7505893707275390625 20.2155857086181640625 36.5371379852294921875 39.6552715301513671875 46.02692413330078125 57.10083770751953125 75.22411346435546875 87.57634735107421875 88.181529998779296875 91.533580780029296875 88.405399322509765625 81.845462799072265625 75.97019195556640625 64.17948150634765625 58.94728851318359375 45.65023040771484375 42.9550418853759765625 30.6399478912353515625 19.0017833709716796875 9.6032543182373046875
12.37529468536376953125 19.48308753967285156250 29.37636184692382812500 44.09620475769042968750 49.84109783172607421875 60.563880920410156250 69.162475585937500000 83.400230407714843750 95.8789386749267578125 98.8575553894042968750 94.9694900512695312500 90.1254310607910156250 84.9078273773193359375 76.074836730957031250 67.563385009765625000 54.298759460449218750 45.30263614654541015625 44.79749488830566406250 31.82086563110351562500 23.30251884460449218750 13.80162715911865234375
12.187647342681884765625 22.929191112518310546875 25.42972469329833984375 44.73628330230712890625 54.968651294708251953125 62.202489376068115234375 69.863178253173828125 79.281352996826171875 95.63958454132080078125 102.36824703216552734375 100.9135227203369140625 99.5474605560302734375 90.51662921905517578125 84.49133205413818359375 77.819110870361328125 67.931072235107421875 57.800697803497314453125 46.050065517425537109375 41.30918025970458984375 29.56169223785400390625 25.552073001861572265625 10.900813579559326171875
8.0938236713409423828125 19.5584192276000976562500 30.1794579029083251953125 38.083003997802734375000 54.8524672985076904296875 61.5855703353881835937500 70.0328338146209716796875 83.5722656250000000000 89.460468769073486328125 103.003915786743164062500 106.640884876251220703125 107.23049163818359375000 101.032044887542724609375 93.503980636596679687500 84.155221462249755859375 74.8750915527343750000 69.8658850193023681640625 53.9253816604614257812500 47.6796228885650634765625 43.435436248779296875000 32.5568826198577880859375 23.2264432907104492187500 9.4504067897796630859375
11.04691183567047119140625 17.82612144947052001953125 28.86893856525421142578125 39.13123095035552978515625 54.46773564815521240234375 61.21901881694793701171875 68.80920207500457763671875 84.80254971981048583984375 87.5163671970367431640625 104.2321922779083251953125 110.8224003314971923828125 109.9356882572174072265625 106.1312682628631591796875 98.2680127620697021484375 94.8296010494232177734375 81.5151565074920654296875 78.37048828601837158203125 65.89563333988189697265625 56.80250227451324462890625 48.55752956867218017578125 45.99615943431854248046875 29.89166295528411865234375 25.33842504024505615234375 10.72520339488983154296875
6.523455917835235595703125 16.436516642570495605468750 27.347530007362365722656250 35.000084757804870605468750 49.799483299255371093750000 60.843377232551574707031250 70.014110445976257324218750 79.805875897407531738281250 90.159458458423614501953125 104.87427973747253417968750 113.52729630470275878906250 113.37904429435729980468750 116.03347826004028320312500 108.19964051246643066406250 101.54880690574645996093750 97.17237877845764160156250 80.942822396755218505859375 77.133060812950134277343750 64.349067807197570800781250 54.680015921592712402343750 53.276844501495361328125000 45.943911194801330566406250 35.615043997764587402343750 23.031814217567443847656250 8.362601697444915771484375
5.2617279589176177978515625 13.4799862802028656005859375 28.892023324966430664062500 40.173807382583618164062500 45.399784028530120849609375 58.321430265903472900390625 67.428743839263916015625000 82.909993171691894531250000 90.9826671779155731201171875 106.5168690979480743408203125 117.20078802108764648437500 117.45317029953002929687500 118.70626127719879150390625 121.11655938625335693359375 109.87422370910644531250000 107.36059284210205078125000 91.0576005876064300537109375 85.0379416048526763916015625 73.741064310073852539062500 63.514541864395141601562500 61.978430211544036865234375 53.610377848148345947265625 49.779477596282958984375000 32.323429107666015625000000 23.6972079575061798095703125 12.1813008487224578857421875
9.63086397945880889892578125 16.37085711956024169921875000 28.18600480258464813232421875 43.532915353775024414062500 49.7867957055568695068359375 56.8606071472167968750000000 64.8750870525836944580078125 82.169368505477905273437500 95.94633017480373382568359375 100.74976813793182373046875000 116.85882855951786041259765625 118.32697916030883789062500 127.079715788364410400390625 121.911410331726074218750000 121.495391547679901123046875 113.61740827560424804687500 102.20909671485424041748046875 97.04777109622955322265625000 82.38950295746326446533203125 73.627803087234497070312500 69.7464860379695892333984375 60.7944040298461914062500000 56.6949277222156524658203125 45.051453351974487304687500 30.01031853258609771728515625 25.93925440311431884765625000 15.09065042436122894287109375
11.815431989729404449462890625 20.000860549509525299072265625 28.278430961072444915771484375 41.859460078179836273193359375 54.65985552966594696044921875 60.32370142638683319091796875 65.86784709990024566650390625 78.52222777903079986572265625 97.057849340140819549560546875 100.348049156367778778076171875 112.804298348724842071533203125 124.592903859913349151611328125 129.7033474743366241455078125 128.4955630600452423095703125 128.7034009397029876708984375 119.5563999116420745849609375 113.913252495229244232177734375 108.628433905541896820068359375 91.718637026846408843994140625 79.008653022348880767822265625 79.68714456260204315185546875 67.27044503390789031982421875 67.74466587603092193603515625 58.87319053709506988525390625 42.530885942280292510986328125 34.974786467850208282470703125 23.514952413737773895263671875 13.545325212180614471435546875
10.9077159948647022247314453125 24.9081462696194648742675781250 28.1396457552909851074218750000 40.0689455196261405944824218750 53.2596578039228916168212890625 64.491778478026390075683593750 68.095774263143539428710937500 77.195037439465522766113281250 93.7900385595858097076416015625 101.7029492482542991638183593750 111.5761737525463104248046875000 121.6986011043190956115722656250 136.1481256671249866485595703125 134.09945526719093322753906250 136.59948199987411499023437500 133.12990042567253112792968750 121.7348262034356594085693359375 115.2708432003855705261230468750 101.1735354661941528320312500000 87.3636450245976448059082031250 85.3478987924754619598388671875 74.478794798254966735839843750 71.507555454969406127929687500 66.308928206562995910644531250 55.7020382396876811981201171875 41.7528362050652503967285156250 31.2448694407939910888671875000 22.5301388129591941833496093750 7.7726626060903072357177734375
5.45385799743235111236572265625 17.90793113224208354949951171875 26.5238960124552249908447265625 34.1042956374585628509521484375 46.66430166177451610565185546875 58.87571814097464084625244140625 66.293776370584964752197265625 72.645405851304531097412109375 85.49253799952566623687744140625 97.74649390392005443572998046875 106.6395615004003047943115234375 116.6373874284327030181884765625 128.92336338572204113006591796875 135.12379046715795993804931640625 135.34946863353252410888671875 134.86469121277332305908203125 127.43236331455409526824951171875 118.50283470191061496734619140625 108.2221893332898616790771484375 94.2685902453958988189697265625 86.35577190853655338287353515625 79.91334679536521434783935546875 72.993175126612186431884765625 68.908241830766201019287109375 61.00548322312533855438232421875 48.72743722237646579742431640625 36.4988528229296207427978515625 26.8875041268765926361083984375 15.15140070952475070953369140625 3.88633130304515361785888671875

min:3.88633130304515361785888671875
max:135.34946863353252410888671875
72665192664.00000000000000000000000000

因为没有参与过这种类型的题,打印出来发现并没有题目给的最小值,以为自己算法写错了,原来进行了处理才得到的结果为整数,那么我的做法就是 把题目给的数除以我算出来的最小值,然后就得到了这个倍数,接着用这个倍数乘以我算出来的最大值,也就得到了题目要求的整数

72665192664.00000000000000000000000000

答案也就是72665192664

有点意思

猜你喜欢

转载自blog.csdn.net/weixin_42036647/article/details/88354330
今日推荐