写出一个可以工作的程序并不够
最简单的是穷举,不过那可要O(9*109),不可取
posted on 2007-04-16 17:29 Dain 阅读(1104) 评论(5) 编辑 收藏 引用 所属分类: 算法 、笔记
#include<ctime> #include<iostream> using namespace std; int cnt=0; void dfs(int s,int i){ if(i>9){ cout<<s<<endl; cnt++; return; } s*=10; int m=s%i; if(m!=0) m=i-m; for(; m<10; m+=i) dfs(s+m,i+1); } int main(){ for(int j=0; j<10000;++j){ cnt=0; for(int i=1; i<10; ++i) dfs(i,2); // cout<<cnt<<endl; } cout<<clock(); return 0; } 答案有2492个,不计输出用时约0.00058秒 回复 更多评论
组合数学内容,早知道它很有用,可是还是忘记的差不多了,唉... 回复 更多评论
我做出来是2227个 回复 更多评论
是我看错了,是2492个 回复 更多评论
看下你的算法 @wzqxp2002 回复 更多评论
Powered by: C++博客 Copyright © Dain