一程序问题,求大家指教指教

mexiyu 2015-04-17 10:46:55
#include <stdio.h>
int dfs(int i, int j, int count, int *flag);
int dfs(int i, int j, int count, int *flag)
{
if(i == j && *flag == 0)
{
*flag = 1;
return count;
}
if(*flag == 1)
return 0;
return dfs(i - 1, j, count++,flag) + dfs(i + 1, j, count++,flag) + dfs(i * 2, j, count++, flag);
}
int main()
{
int i,j;
int *flag;
int a = 0;
flag = &a;
scanf("%d%d",&i,&j);
printf("%d",dfs(i,j,0,flag));
return 0;
}
运行的时候总是显示错误
不知道程序哪儿错了
...全文
108 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiht594 2015-04-18
  • 打赏
  • 举报
回复
int min:-2147483648 max:2147483647 如果i比j小, 你算算递归多少次才能满足if(i == j
mexiyu 2015-04-17
  • 打赏
  • 举报
回复
可是我要返回的值和i没关系呢,如果最后的*flag为1了,那么就返回0,不影响最后之和的值啊 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=75228#problem/A 这是那到题
jiht594 2015-04-17
  • 打赏
  • 举报
回复
dfs(i - 1 i-1会变成0, -1 -2 -3 .............................

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧