HPUoj 題目1019 【C語言訓練】尼科徹斯定理(水題,數學)
阿新 • • 發佈:2019-01-29
1019: 【C語言訓練】尼科徹斯定理
時間限制: 1 Sec 記憶體限制: 128 MB提交: 9 解決: 5
[提交][狀態][討論版]
題目描述
驗證尼科徹斯定理,即:任何一個正整數的立方都可以寫成一串連續奇數的和。
輸入
任一正整數
輸出
該數的立方分解為一串連續奇數的和
樣例輸入
13樣例輸出
13*13*13=2197=157+159+161+163+165+167+169+171+173+175+177+179+181提示
本題是一個定理,我們先來證明它是成立的。
對於任一正整數a,不論a是奇數還是偶數,整數(a×a-a+1)必然為奇數。
構造一個等差數列,數列的首項為(a×a-a+1),等差數列的差值為2(奇數數列),則前a項的和為:
a×((a×a-a+1))+2×a(a-1)/2
=a×a×a-a×a+a+a×a-a
=a×a×a
定理成立。證畢。
通過定理的證明過程可知L所要求的奇數數列的首項為(a×a-a+1),長度為a。程式設計的演算法不需要特殊設計,可按照定理的證明過直接進行驗證。
來源
題目都給出了,不過這個定理有點意思
ac程式碼
#include<stdio.h>
int main()
{
int a;
while(scanf("%d",&a)!=EOF)
{
int m=a*a-a+1,i;
printf("%d*%d*%d=%d=%d",a,a,a,a*a*a,m);
for(i=1;i<a;i++)
{
m+=2;
printf("+%d",m);
}
printf("\n");
}
}