如果有很多(這種規(guī)律) 的數(shù)字 1 4 9 16 25 問題:1+4+16 =21怎么通過21得到 1,4,16 這個幾個數(shù),,,這個算法如何實現(xiàn)
1 回答

哈士奇WWW
TA貢獻1799條經(jīng)驗 獲得超6個贊
先從1開始枚舉i,當(dāng)i^2大于n(你讀入的數(shù))時跳出并記錄i-1,比如讀入21時i=5就跳出了,記錄一個4,然后重復(fù)這個操作直到1
代碼如下,
void Function(int k) {
if (k == 1) {
printf("1\n");
return;
}
int i;
for (i = 1; i * i <= k; i++);
i--;
Function(k - i * i);
printf("%d\n", i * i);
}
例如輸入21就會輸出:
1
4
16
望采納
添加回答
舉報
0/150
提交
取消