请参阅我正在尝试打印数字n可以打印的不同方式,其中最大数字为4
我的程序在循环中减去no here(4)
,然后在末尾打印4并将剩余的数字here(2)
发送到同一函数,最大值为3,2,1。
当max为1时,它只打印所有1。
当我输入n = 6时,它显示输出
2
1 1 4
应该显示的地方
2 4
1 1 4
我不知道为什么会出现这种情况,这是一个简单的递归,我也检查了很多错误。
这是代码
#include<bits/stdc++.h>
using namespace std;
void comp(int n,int k)
{
if(n>=k&&k!=0&&k!=1&&n!=0)
{
for(int i=1;i<=(n/k);i++)
{
for(int l=k-1;l>=1;l--)
{
comp(n-(i*k),l);
}
for(int j=0;j<i;j++)
{
cout<<k<<" ";
}
cout<<"\n";
}
}
if(k==1)
{
for(int i=0;i<n;i++)
{
cout<<"1 ";
}
}
}
int main()
{
int n;
while(cin>>n)
{
comp(n,4);
}
return 0;
}