早上:打金刚功,金刚功,刚功,功。
for多层嵌套可以用递归函数表示,这样就可以表示n层for的嵌套。举一个简单的例子。
求n个数加起来等于m,有哪些情况。
#includeusing namespace std; int jishuqi = 0; int w[1000000]; void digui( int a , int b , int n , int num , int p ) { int i; if(n == a){ if( num == b){ jishuqi ++; for(i=0;i
输入样例:
2 6
输出样例:
0 6
1 5
2 4
3 3
4 2
5 1
6 0
7
那个7是7种情况的意思。
这个和用2个for嵌套是一样的,那就是两个数加起来等于一个值:
#includeint main(){ int i,j,y; scanf("%d",&y); for(i=0;i<=y;i++){ for(j=0;j<=y;j++){ if(i+j==y)printf("%d %dn",i,j); } } return 0; }
样例输入:
6
样例输出:
0 6
1 5
2 4
3 3
4 2
5 1
6 0
这样就可以解决一些n层for嵌套的题,但是还是要多加练习,现在我的递归思维比较迟钝,写递归类的题目时常常转不过来。上面只是作为一个样例,先看懂再对着样例写。我觉得只要时间不超限,这种方法是可以解决背包问题的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)