本人在编写程序时遇到一个奇怪的现象,就是在递归中如果将dfs(i,k-1,n-i)改成dfs(i,k--,n-i),程序就无法输出答案。
调试时报SIGFPE(除零异常信号)
编译器版本:gcc-4.9.2
代码如下
#include<iostream>
#include<cstdio>
using std::cin;
int n,k,ans;
void dfs(int,int,int);
int main(){
cin>>n>>k;
dfs(1,k,n);
printf("%d\n",ans);
return 0;
}
void dfs(int x,int k,int n){
if(k==1){
ans++;
return;
}
for(int i=x;i<=n/k;i++)
dfs(i,k-1,n-i);
}