整数分解为若干项之和

    xiaoxiao2021-03-25  121

    #include<stdio.h> int s[100];//拆分结果保存在这个数组里 int top;//记录个数 int total, n;//累加数和所求数 int k; void dfs(int index) { int i; if (total == n){ printf("%d=", n); for (i = 0; i<top - 1; i++) printf("%d+", s[i]); k++; if (k == 4 || top == 1){ k = 0; printf("%d\n", s[top - 1]); } else printf("%d;", s[top - 1]); return; } if (total>n) return; for (i = index; i <= n; i++){ total += i; s[top++] = i; dfs(i); total -= i; s[--top]; } } int main() { while (scanf("%d",&n)==1){ k = 0; top = 0; total = 0; dfs(1); } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-8666.html

    最新回复(0)