A
a-i'm boring with life
求两个数阶乘的最大公因数
#include<cstdio> #include<iostream> using namespace std; int main() { int x,y; int temp; scanf("%d%d",&x,&y); if(x<y) { temp=x; x=y; y=temp; } int sum=1; for(int i=1;i<=y;i++) sum=sum*i; printf("%d",sum); return 0; } BB. Crossword solving
平移字符串然后比较
#include<cstdio> #include<iostream> #include<cstring> using namespace std; #define inf 1e9 int main() { int pos; int n,m; int cnt[1000]; int Min=inf; bool vis[1000][1000]; char s[1005],t[10005]; scanf("%d%d%s%s",&n,&m,s,t); memset(cnt,0,sizeof(cnt)); memset(vis,0,sizeof(vis)); for(int i=0;i<=m-n;i++) { for(int j=0;j<n;j++) { if(s[j]!=t[i+j]) { cnt[i]++; vis[i][j]=1; } } } for(int i=0;i<=m-n;i++) { if(cnt[i]<Min) { Min=cnt[i]; pos=i; } } printf("%d\n",cnt[pos]); int i; for(i=0;i<m;i++) { if(vis[pos][i]==1) { printf("%d",i+1); break; } } for(int j=i+1;j<m;j++) { if(vis[pos][j]==1) printf(" %d",j+1); } return 0; }