10624 - Super Number
来源:互联网 发布:阳台啪的感觉知乎 编辑:程序博客网 时间:2024/05/06 19:06
描述:险过,2.856s,题意就是前几位能被几整除,n表示是从第n位开始,m表示是到m位结束,如果在这期间存在一个数可以整除从n到m区间的任何一个数,那就输出,如果存在多个,选取最小的一个输出,如果不存在,输出-1#include <cstdio>#include <cstdlib>#include <cstring>int n,m,flag,sum;char str[35];int cal(int cur){ int c=0; for(int i=0; i<cur; i++) c=(c*10+str[i]-'0')%cur; return c;}void dfs(int cur){ if(flag) return; if(cur==m) { flag=1; printf("%s\n",str); return; } for(int i=0; i<10; ++i) { str[cur]='0'+i; if(cur<n-1||!cal(cur+1))dfs(cur+1); if(flag) return; }}int main(){ //freopen("a.txt","r",stdin); int t,c=1; scanf("%d",&t); while(c<=t) { scanf("%d %d",&n,&m); printf("Case %d: ",c++); flag=sum=0; if(n<m) for(int i=1; i<10; ++i) { str[0]=i+'0'; dfs(1); if(flag) break; } if(!flag) printf("-1\n"); } return 0;}