答案:1031,1032,1034-1044,1047-1052,1054-1059 共25题 1031小明的数学题Ⅰ #include
__int64 a[950]; void cal(__int64 k){ __int64 i;
for(i=0;i for(i=0;i int main(){ int cases; __int64 aa,n,i; scanf(\ while(cases--){ scanf(\ if(n==1) { printf(\ if(aa==1) { printf(\ if(aa==0) { printf(\ if(aa<0) { if(n%2==1) printf(\ memset(a,0,sizeof(a)); a[0]=1;e=1; for(i=1;i<=n;i++) cal(aa); for(i=e-1;i>=0;i--) printf(\ } return 0; } 1032小明的数学题2 #include for(i=0;i for(i=0;i for(i=e+5;i>=0;i--) if(a[i]!=0) break; e=i+1; } int main(){ int cases; int aa,n,i; scanf(\ while(cases--){ scanf(\ memset(a,0,sizeof(a)); a[0]=1;e=1; for(i=1;i<=n;i++) cal(i); for(i=e-1;i>=0;i--) printf(\\\n\ } return 0; } 1034小明的数学题Ⅳ #include char s1[2010],s2[2010],ss1[2010],ss2[2010]; int a[4010],e,i,j; void calculate(int len1,int len2,char ss1[],char ss2[]) { e=0;memset(a,0,sizeof(a)); for(i=0;i for(j=0;j a[i+j+1]+=(ss1[i]-'0')*(ss2[j]-'0'); if(i+j+1>e) e=i+j+1; } } e+=5; for(i=1;i<=e;i++) { a[i+1]+=a[i]/10;a[i]=a[i]; } } int main() { int cases,len1,len2,dot1,dot2,i1,i2; scanf(\ while(cases--) { scanf(\ len1=strlen(s1);len2=strlen(s2); dot1=0;dot2=0;i1=0;i2=0; if(s1[0]=='-') i1=1; for(i=i1;i if(s1[i]!='.') continue; else { dot1=len1-1-i; for(j=i;j for(i=len1-1;i>=i1;i--) ss1[len1-1-i]=s1[i]; if(i1==1) len1--; if(s2[0]=='-') i2=1; for(i=0;i if(s2[i]!='.') continue; else { dot2=len2-1-i; for(j=i;j for(i=len2-1;i>=0;i--) ss2[len2-1-i]=s2[i]; if(i2==1) len2--; if((i1+i2)%2) printf(\ calculate(len1,len2,ss1,ss2); // for(i=e;i>0;i--) printf(\\\n\ for(i=e;i>dot1+dot2;i--) if(a[i]==0) continue; else break; e=i; if(e==dot1+dot2) e=dot1+dot2+1; for(i=e;i>dot1+dot2;i--) printf(\out< for(i=1;i<=dot1+dot2;i++) if(a[i]==0) continue; else break; e=i;if(e==dot1+dot2+1) e=dot1+dot2; if(!(e==dot1+dot2 && a[e]==0)) { printf(\for(i=dot1+dot2;i>=e;i--) printf(\ } printf(\ } return 0; } 1035列车长的烦恼 #include int a[110],stack[110],cases,n,i,p,top,aa; int main() { scanf(\ while(cases--) { scanf(\[i]); top=0;p=1;aa=1;stack[0]=-1; while(p stack[++top]=p;p++; while(stack[top]==a[aa]) { top--;aa++; } } if(top==0) printf(\else printf(\ } return 0; } 1036 远古文明的算术题 #include int sum,i; sum=s[0]-'0';i=1; while(s[i]!='\\0') { sum=sum*10+s[i]-'0'; i++; } return sum; } char s[300]; long stack[1000]; int main() { int cases,sum,top; scanf(\ while(cases--) { scanf(\ sum=change(s); stack[++top]=sum; while(getchar()!='\\n') { scanf(\ if(s[0]=='+') { stack[top-1]=stack[top-1]+stack[top]; top--; }

