一定要注意数组初始化的位置
#include <iostream> #include <string> #include <cstring> #include <cstdlib> #include <cstdio> #include <cmath> #include <algorithm> #include <stack> #include <queue> #include <cctype> #include <vector> #include <iterator> #include <set> #include <map> #include <sstream> using namespace std; #define mem(a,b) memset(a,b,sizeof(a)) #define pf printf #define sf scanf #define spf sprintf #define pb push_back #define debug printf("!\n") #define INF 10000 #define MAXN 5010 #define MAX(a,b) a>b?a:b #define blank pf("\n") #define LL long long #define ALL(x) x.begin(),x.end() #define INS(x) inserter(x,x.begin()) #define pqueue priority_queue char buf[6]; int used[10]; bool check(char* a) { mem(used,0); for(int i =0;i<10;i++) { used[a[i]-‘0‘]=1; } for(int i = 0;i<10;i++) { if(!used[i]) return false; } return true; } int main() { int n,i,j,kase=0; while(sf("%d",&n)==1 && n) { int ok=0; if(kase++) blank; for(i=1;i<=98765;i++) { spf(buf,"%05d%05d",i*n,i); int len = strlen(buf); if(len>10) break; if(check(buf)) { pf("%05d / %05d = %d\n",i*n,i,n); ok = 1; } } if(!ok) pf("There are no solutions for %d.\n",n); } }
#include <iostream> #include <string> #include <cstring> #include <cstdlib> #include <cstdio> #include <cmath> #include <algorithm> #include <stack> #include <queue> #include <cctype> #include <vector> #include <iterator> #include <set> #include <map> #include <sstream> using namespace std; #define mem(a,b) memset(a,b,sizeof(a)) #define pf printf #define sf scanf #define spf sprintf #define pb push_back #define debug printf("!\n") #define INF 10000 #define MAXN 5010 #define MAX(a,b) a>b?a:b #define blank pf("\n") #define LL long long #define ALL(x) x.begin(),x.end() #define INS(x) inserter(x,x.begin()) #define pqueue priority_queue int buf[20]; int main() { int n,i,j,kase=0,cnt=1; while(sf("%d",&n)==1) { for(i=0;i<n;i++) { sf("%d",&buf[i]); } if(kase++) blank; long long ma = 0; for(i=0;i<n;i++) { long long res = 1; for(j=i;j<n;j++) { res*=buf[j]; if(res>ma) ma = res; } } pf("Case #%d: The maximum product is %I64d.\n",cnt++,ma); } }
尽量用余数%判断一个double是否是整数
#include <iostream> #include <string> #include <cstring> #include <cstdlib> #include <cstdio> #include <cmath> #include <algorithm> #include <stack> #include <queue> #include <cctype> #include <vector> #include <iterator> #include <set> #include <map> #include <sstream> using namespace std; #define mem(a,b) memset(a,b,sizeof(a)) #define pf printf #define sf scanf #define spf sprintf #define pb push_back #define debug printf("!\n") #define INF 10000 #define MAXN 5010 #define MAX(a,b) a>b?a:b #define blank pf("\n") #define LL long long #define ALL(x) x.begin(),x.end() #define INS(x) inserter(x,x.begin()) #define pqueue priority_queue int x[10011],y[10011]; int main() { int n,i,j,kase=0; while(sf("%d",&n)==1) { int v=0,cnt=0; mem(x,0); mem(y,0); for(i=n+1;i<=2*n;i++) { if(i*n % (i-n)==0) { x[v]=i*n/(i-n); y[v++]=i; } } pf("%d\n",v); for(i = 0;i<v;i++) pf("1/%d = 1/%d + 1/%d\n",n,x[i],y[i]); } }
原文:http://www.cnblogs.com/qlky/p/5246653.html