问题
输入
疑问
当while语句里写为res=0,则输出正确结果
但当while语句里写为int res=0;,则输出错误结果
在执行while语句时,不都是从上向下执行吗?并且都是让res=0,为什么会有不一样的结果?是因为在main里面,输出的默认为局部变量res吗
代码
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int res;
int m,n;
void dfs(int t,int start,int state)
{
if(state==n&&t==0) res++;
if(state>=n) return;
for(int i=start;i<=t;i++)
dfs(t-i,i,state+1);
}
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>m>>n;
res=0;
dfs(m,0,0);
cout<<res<<endl;
}
return 0;
}