关于UVA - 725 - Division 的一系列思考
枚举算法练习 - Virtual Judge (vjudge.net)
--------------------------------------------------------
WA:
#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> using namespace std; int main(){ int N; int num[10]; int a,b; int m,n; memset(num,0,sizeof(num)); while(cin>>N && N!=0){ for(a=1234;a<=49382;a++){ b=n*a; m=a,n=b; if(b>98765) cout<<"There are no solutions for "<<N<<"."<<endl; else if(b>0&&b<98766){ int i,j; int flag=1; for(i=0;i<=4;i++){ if(m>9){ num[i]=m%10; m=m/10; } } for(i=5;i<=9;i++){ num[i]=n%10; n/=10; } for(j=1;j<=9;j++){ if(num[i-1]==num[i]) flag=0; } if(flag==1) printf("%05d / %05d = %d\n",b,a,N); else cout<<"There are no solutions for "<<N<<"."<<endl; } } } return 0; }
AC:
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; char f[99]; int main() { int n,k=0; while(scanf("%d",&n)!=EOF&&n!=0) { int a,b; bool flag1=false; if(k++) printf("\n"); for(b=1234;b<=98765;b++) { bool flag2=true; a=b*n; sprintf(f,"%05d%05d",a,b); if(strlen(f)>10) break; sort(f,f+10); for(int i=0;i<10;i++) { if(f[i]!='0'+i) flag2=false; } if(flag2) { flag1=true; printf("%05d / %05d = %d\n",a,b,n); } } if(!flag1) printf("There are no solutions for %d.\n", n); } return 0; }
总结:
对于 bool 类型的理解不到位,
bool 函数 可用的范围很广泛,
替代了C语言用 int 变量 flag
《C prime plus》里的bool类型值得参考!
本文来自博客园,作者:小白兔奶糖, 侵权必究!!!