任何一个n的三次方一定可以表示成n个连续的奇数和,输入n,输出n的三次方对应的表达式.用pascal语言
这个问题好著名。
把它当做一个纯数学问题来解:
举特殊值,当n=7 时,7^3=7^2×7 ,因此这七个连续奇数的平均数一定是 7^2=49 ,
有想法了吗?
7^3就是几个数相加的结果,很好证明。
扩展到任意自然数 n ,n^3=n^2 × n,所以这n个数的平均数是 n^2,
Ⅰ.若n是奇数,( pascal表述:if odd(n) )
则最中间的数是 n^2,最左边的数是 n^2-n+1(关于这个,楼主可以自己试试看。当n=7时,
就是 7^2-7+1=7^2-6 ),最右边的数是 n^2+n-1 ;
Ⅱ.若n是偶数,( pascal表述:if not(odd(n)) )
没有最中间的的数了,但是最左边的数还是 n^2-n+1(可以举个例子试试,如n=4,最左边是
4^2-3,第二个是 4^2-1,然后 4^2+1,4^2+3,这四个连续奇数的和正好是 4^2×4=4³.
参考程序:
program n3;
var n,i,a:longint;
begin
writeln('Input n');
readln(n);
write(n,'^3=');
a:=n-1; //a用来放置那个 n^2 后面要加上或减去的数;
for i:=1 to n do
begin
write(n*n-a);
if i<n then write('+'); //处理'+'的输出;
a:=a-2; //注意到,当a达到某一值的时候会变为负数;
end;
readln;
end.