如果有很多(这种规律) 的数字 1 4 9 16 25 问题:1+4+16 =21怎么通过21得到 1,4,16 这个几个数,,,这个算法如何实现
3 回答
九州编程
TA贡献1785条经验 获得超4个赞
先从1开始枚举i,当i^2大于n(你读入的数)时跳出并记录i-1,比如读入21时i=5就跳出了,记录一个4,然后重复这个操作直到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
提交
取消