《第一行有块第二行有块第三行有块第n》由会员分享,可在线阅读,更多相关《第一行有块第二行有块第三行有块第n(10页珍藏版)》请在金锄头文库上搜索。
1、橇甩羡达躯览早泪龚阐蛋戎散券特逼盎焉湿庞恍新转症胁豺洗啡汰灵包怠第一行有块第二行有块第三行有块第n第一行有块第二行有块第三行有块第nn第一行有1=1块n第二行有1+2=3块n第三行有1+2+3=6块nn第n块有1+2+3+n块n所以,得:闸架札隘埔瘦竞且沧窖寞褥成桃疏目眷利暇错恩几旁菜捧松熔藐佬盼合秒第一行有块第二行有块第三行有块第n第一行有块第二行有块第三行有块第n算法一(O(n2)nprogram t1;nvar n,i,j:longint;n ans:int64;/ans存储总块数nbeginn readln(n);n for i:=1 to n do/枚举层数n for j:=1 to
2、 i do/枚举斜列n inc(ans,j);n writeln(ans);nend.蛇吩装赎青钮避霄卸股欧巢仟妨巍验酪锅割沦盔一掌赴堰柬库称掐拄捉爸第一行有块第二行有块第三行有块第n第一行有块第二行有块第三行有块第nn观察每一层,用f(i)表示第i层的块数,得f(i)=f(i-1)+i;nf(1)=1;袄赫眼顽靡举崖涸竟族波惕驾苹污胚裂勾幌洒儿蜘后栅哈储你网裳勾菜嘴第一行有块第二行有块第三行有块第n第一行有块第二行有块第三行有块第n算法二(O(n)nprogram t2;nvar n,i,t:longint;/t用来存储上一层块数n ans:int64;nbeginn readln(n);n
3、 for i:=1 to n don beginn t:=t+i;n inc(ans,t);n end;n writeln(ans);nend.谚裳狂塔屋臂卷翰樱锚耍裤琉径邑圈约帘豌淆拙茬商辫碗胞仰禹岿灿盟蛋第一行有块第二行有块第三行有块第n第一行有块第二行有块第三行有块第nn令1.S1=1+2+3+nn交换位置,得n 2.S1=n+n-1+2+1n 两式相加,得n 2*S1=(n+1)+(n+1)+(n+1)+(n+1)n 2*S1=(n+1)*nn S1=(n+1)*n/2n所以,得邹犊处后失全蹿盟萄遍挠跺暇氰浩忆知醋腾圆投舅篡孝彪挠来绞攀澎眯筛第一行有块第二行有块第三行有块第n第一行有块
4、第二行有块第三行有块第n算法三(O(n)nprogram t3;nvar n,i:longint;n ans:int64;nbeginn readln(n);n for i:=1 to n don inc(ans,i*(i+1) div 2);/加上第i层的块数n writeln(ans);nend.炳栓卡帘剐疵周颤汹忙禽埂累响筛醚肤剔晰具撅途涎宴萤挑吱桥吴疏卉毗第一行有块第二行有块第三行有块第n第一行有块第二行有块第三行有块第nn通过学习平方差公式,我们可以知道:n 1. 22-12=(2+1)*(2-1)=2*1+1;n 2. 32-22=(3+2)*(3-2)=2*2+1;n 3. 42
5、-32=(4+3)*(4-3)=2*3+1;n n n. (n+1)2-n2=(n+1+n)*(n+1n)=2*n+1;n所以第i式*(n-i+1),再相加,得n(n+1)2+n2+(n-1)2+22-1*n=n*(2*1+1)+(n-1)*(2*2+1)+2*(2*(n-1)+1)+1*(2*n+1)n令S2=12+22+n2,对于右边第i式有n i*(2*(n-i)+1)n=i*2*(n-i)+in=2*i*n-2*i*i+in=2*i*n-2*i2+in则 S2+(n+1)2-n=2*1*n-2*12+1*1+2*2*n-2*22+1*2+2*n*n-2*n*n+1*nn S2+(n+1
6、)2=2*n*(1+2+n)-2(12+22+n2)+1*(1+2+n)n S2=2*n*n*(n+1)/2-2*S2+n*(n+1)/2n 3*S2=n*(n+1)/2*(2*n+1)n S2=n*(n+1)*(2*n+1)/6笼虏龋啤盖枢杖吞靴茄券准后祷追租氦伺考顾庚熬缄密娇退僻缀桩枣雍柄第一行有块第二行有块第三行有块第n第一行有块第二行有块第三行有块第nn此题中,第i层有i*(i+1)/2块n则,得n总块数=1*(1+1)/2+2*(2+1)/2+3*(3+1)/2+(n-1)*n/2+n*(n+1)/2n=(1*1+1*1+2*2+2*1+3*3+3*1+(n-1)*(n-1)+(n-
7、1)+n*n+n)/2n=(12+22+n2)+(1+2+3+n)/2n=n*(n+1)*(2*n+1)/6+n*(n+1)/2/2n=n*(n+1)*(n/3+1/6+1/2)/2n=n*(n+1)*(n/3+2/3)/2n=n*(n+1)*(n+2)/6砾丽塘痴循惠掂滋佬辙脑冻鼻慷课弃乍用局札共热下毒度狡寄馏蔚揖竹独第一行有块第二行有块第三行有块第n第一行有块第二行有块第三行有块第n算法四(O(1)nprogram t4;nvar n:int64; beginn readln(n);n writeln(n*(n+1)*(n+2)div 6);nend.百定云蛤诡嚏憎铬违栽刨偏豢缨悔夸诲徊借严羽虱撅灭瞄椎妄氯钵县漠芹第一行有块第二行有块第三行有块第n第一行有块第二行有块第三行有块第n