大家好,又见面了,我是你们的朋友全栈君。
http://hi.baidu.com/pope123/item/9d473e7f3ea341376f29f674
这篇文章用汇编告诉了我返回值有可能是true也可能是false,但我看不懂,以后攻。 我为什么会接触到这个问题,请看实际例子:
原来我漏写了代码中有颜色的两条语句,发现程序运行结果出乎我的意料。 我原来以为不写就是默认返回false。其实 bool work()原来是void work()
bool work(int x,int y,int z) { int i; if (y==9) x++,y=0; if (x==9) { ans=z; return(true); } if (table_for_solve[x][y]) { if(work(x,y+1,z+table_for_solve[x][y]*h[x][y])) return(true); else return(false); } else { for (i=1;i<=ss;i++) if (!b[x][i]&&!c[y][i]&&!d[x/s*s+y/s][i]) { table_for_solve[x][y]=i; make(x,y,i,1); if(work(x,y+1,z+i*h[x][y])) return(true); make(x,y,i,0); } table_for_solve[x][y]=0; return(false); } }
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137382.html原文链接:https://javaforall.cn