#include<stdio.h>
#include<math.h>
int main()
{
int n,j,t=0,z;
double a,i;
int b[t];
scanf("%d",&n);
j=n%2;
n/=2;
if(j==1)
{
printf("-1");
}
else
{for(i=1;n!=0;i++)
{
j=n%2;
n/=2;
a=(pow(2,i))*j;
if(a!=0)
{
t++;
b[t]=a;}
}
for(z=t;z>0;z--)
{
printf("%d ",b[z]);
}}
return 0;
}
我的这个代码数据到26就出错了,这个怎么解决尼?
提交显示是75分。
![](https://profile-avatar.csdnimg.cn/fd52a0c0f813485ea272eb06c2f4e29d_qq_74100700.jpg!4)
正整数的最优分解问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 宇宙的疯子 2022-11-01 08:21关注
这个题n是有范围的,可知数组里最多有20个数,所以只需要把int b[t],改成int b[任意大于等于20的数],就可以运行;至于为什么变长数组不能实现,我还是不懂
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 SQL查询语句报错(检查)
- ¥15 此表中公式应该怎么写
- ¥15 求HI-TECH PICC 9.50 PL3安装包
- ¥15 在Windows中运行ollama出现运行缓慢的情况
- ¥15 下载ctorch报错,求解
- ¥15 如何将这段css代码应用于wordpress的elementor的单个小部件中显示,而不是整个网站全局显示。
- ¥15 如何入门学习c语言,单片机
- ¥15 idea 编辑语言的选择
- ¥15 Windows下部署Asmjit
- ¥15 请问双层规划模型的上下层目标函数不一致,是如何保证迭代收敛性的