编程之美4.10 数字哑谜和回文

来源:互联网 发布:单词排序 c语言 编辑:程序博客网 时间:2024/05/21 17:30
<pre name="code" class="cpp">//回溯算法int FindTheNumber(){int solution[10];memset(solution, 0, 10*sizeof(int));bool used[10];memset(used,false,10*sizeof(bool));int num = 0;int k = 1;while(k >= 1){if(solution[k] != 0){num -= solution[k];num /= 10;used[solution[k]] = false;}int i;for(i = solution[k] + 1; i <= 9; i++)  //为位置k找一个合适的数{if(!used[i] && (num * 10 + i) % k == 0) break;}if(i == 10) //找不到则回溯到上一个位置{solution[k] = 0;k--;}else{solution[k] = i;used[solution[k]] = true;num *= 10;num += solution[k];if(k == 9)      //找到符合条件的数了,直接返回return num;else             //转到下一个位置k++;}}return 0;}


                                             
0 0