标签:argc 最大 字符串长度 ace include 个数 编程 code names
1.因子问题
任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。
35 10
5
#include <stdio.h> int main(int argc, char *argv[]) { int N,M,a=0,t; scanf("%d%d",&N,&M); t=M/2; for(a=1;a<=t;a++) { if( N%a==0 && (N%(M-a)==0) ) { t=-1; break; } } if(t!=-1) printf("-1\n"); else printf("%d\n",a); return 0; }
2.质数的和与积
两个质数的和是S,它们的积最大是多少?
50
589
#include <bits/stdc++.h> int prime(int h) { if(h < 2) { return 0; } for(int i=2;i<=h/2;++i) { if(!(h%i))return 0; } return 1; } int main( ) { int n; int max=0; int sj=1; int m; scanf("%d",&n); for(int i=2;i<n;++i) { if(prime(i)) { m=n-i; if(prime(m)) { sj=m*i; if(max<sj)max=sj; } } } printf("%d",max); }
3.扩号匹配问题
((ABCD(x) )(rttyy())sss)(
((ABCD(x) $$ )(rttyy())sss)( ? ?$
#include<stdio.h> #include<string.h> #include<malloc.h> typedef struct node { char ch[100]; char sign[100]; char index[100]; int length; } Stack; void init(Stack *&s,int n) { s=(Stack*)malloc(n*sizeof(Stack)); int i; for(i=0;i<n;i++) { s->ch[i]=‘ ‘; s->sign[i]=‘ ‘; s->index[i]=0; } s->length=0; } void push(Stack *&s,char ch ,int index) { if(s->length<100) { s->ch[s->length]=ch; s->index[s->length]=index; if(ch==‘(‘) s->sign[s->length]=‘$‘; if(ch==‘)‘) s->sign[s->length]=‘?‘; } s->length++; } void pop(Stack *&s,char ch,int index) { if(s->length>0&&s->ch[s->length-1]==‘(‘) { s->length--; } else { push(s,ch,index); } } int main() { char str[101]; char result[101]; int i,j,k,len,index; Stack *s; while(gets(str)) { len = strlen(str); init(s,len); for(i=0;i<len;i++) { if(str[i]==‘(‘) { push(s,str[i],i); } else if(str[i]==‘)‘) { pop(s,str[i],i); } else { continue; } } k = 0; for(j=0;j<len;j++) result[j]=‘ ‘; while(k<s->length) { index = s->index[k]; result[index]=s->sign[k]; k++; } printf("%s\n",str); for(i=0;i<len;i++) printf("%c",result[i]); printf("\n"); free(s); } return 0; }
4.不会
5.铺砖
对于一个2行N列的走道。现在用1*2,2*2的砖去铺满。问有多少种不同的方式。
整个测试有多组数据,请做到文件底结束。每行给出一个数字N,0 <= n <= 250
如题
2 8 12 100 200
3 171 2731 845100400152152934331135470251 10712920295059935170279747282274417350148
#include<iostream> #include<cstdio> using namespace std; int a[301][501]; int max(int x,int y){return x>y?x:y;} int main() { a[1][0]=1; a[1][1]=1; a[2][0]=1; a[2][1]=3; for(int i=3;i<=300;i++) { for(int j=1;j<=max(a[i-2][0],a[i-1][0]);j++) { a[i][j]=a[i-1][j]+a[i-2][j]*2; a[i][0]=max(a[i-2][0],a[i-1][0]); } for(int j=1;j<=a[i][0];j++) { a[i][j+1]+=a[i][j]/10; a[i][j]%=10; } while(a[i][a[i][0]+1]) { a[i][0]++; a[i][a[i][0]+1]+=a[i][a[i][0]]/10; } } int n; while(cin>>n) { if(n==0) { cout<<1<<endl; } else { for(int i=a[n][0];i>=1;i--) { cout<<a[n][i]; } cout<<endl; } } }
就这样。
标签:argc 最大 字符串长度 ace include 个数 编程 code names
原文地址:https://www.cnblogs.com/iamxuwu/p/13660079.html