永发信息网

问: 用c语言编程:输入m和n(20>=m>=n>0),求出满足以下方程的正整数数列i1,i2,

答案:1  悬赏:60  手机版
解决时间 2021-02-25 07:25
  • 提问者网友:情歌越听越心酸
  • 2021-02-24 21:53
问: 用c语言编程:输入m和n(20>=m>=n>0),求出满足以下方程的正整数数列i1,i2,i3~in,使得:i1+i2+~+in=m,且i1>i2>=~>=in.(使用数组编程)。哪位大神能解救我。
最佳答案
  • 五星知识达人网友:深街酒徒
  • 2021-02-24 22:05



#include
char calculate(int arr[], int id, int sum, int cnt, int m, int n)
{
int i;

if (sum > m) return 0;
if (cnt == n)
{
if (sum == m)
{
for (i = n - 1; i >= 0; --i)
printf("%d ", arr[i]);
printf("\n");
return 1;
}
else return 0;
}

for (i = id; i < m; ++i)
{
sum += i;
if (sum > m) return 0;
arr[cnt++] = i;
calculate(arr, i, sum, cnt, m, n);
cnt--;
sum -= i;
}
return 0;
}

void main()
{
int m, n;
int arr[20] = {0};
printf("input m and n(20>=m>=n>0):\n");
scanf("%d%d", &m, &n);

calculate(arr, 1, 0, 0, m, n);
}
是满足i1>=i2>=~>=in吧。
可以求出所有满足的组。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯