青少年信息学竞赛语言教程一:简单程序(5)
合肥奥数网整理
2012-12-13 15:07:19
[例1.5] 自然数的立方可以表示为两个整数的平方之差,比如43=102-62,请输出自然数1996的这种表示形式。(这里的43用自乘三次的形式4*4*4表示;102也用自乘二次的形式10*10表示)
解:此题没有现成的计算公式能直接利用,但可以自行推出处理方法或构建适当的运算公式,按着构想的处理方案编排出各步骤。
设这个自然数为N,两个平方数分别为X,Y,将问题表示为求N3=X2—Y2
①先找出X的值,仔细观察题中的示例,用数学方法归纳可得出X=N*(N+1)/2;(构成本题可用的计算公式)
②再仔细观察,发现Y值比X小一个N值,即Y=X—N;
③输出等式N3=X2—Y2或N*N*N=X*X—Y*Y
Pascal程序:
ProgramEx15;
ConstN=1996;{常量说明}
VarX,Y:Longint;{变量说明,此题计算中的数值较大,用长整型}
Begin
X:=N*(N+1)div2;{div是整除运算}
Y:=X-N;
Writeln(N,'*',N,'*',N,'=',X,'*',X,'—',Y,'*',Y);{输出结果}
Readln
End.
本程序中N是常量,X,Y是变量,为长整数类型(Longint);程序中的div是整除运算,其结果只取商的整数部分。
下一页阅读:例1.6的解题
