Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
ft !output limit exceed?我没觉着错,又有什么特殊情况??#include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> char str[5]; char max[5]; char min[5]; int mi; int temp; void swap(char *a,char *b) { char temp; temp=*a; *a=*b; *b=temp; } void find_max() { int i,j,len; strcpy(max,str); len=strlen(max); for(i=0;i<len-1;i++) for(j=1+i;j<len;j++) if(max[j]>max[i]) swap(&max[i],&max[j]); max[len]=0; } void find_min() { int i,j,len; strcpy(min,str); len=strlen(min); for(i=0;i<len-1;i++) for(j=len-1;j>i;j--) if(min[j]<min[i]) swap(&min[i],&min[j]); min[len]=0; mi=atoi(min); } void reverse(char str[]) { int i,len; char t; len=strlen(str); for(i=0;i<len/2;i++) { t=str[i]; str[i]=str[len-1-i]; str[len-1-i]=t; } } void sub() { int i; int m,n,tem; m=n=0; for(i=0;max[i];i++) m=(max[i]-'0')+m*10; for(i=0;min[i];i++) n=(min[i]-'0')+n*10; temp=m-n; tem=temp; for(i=0;tem;i++) { str[i]=tem%10+'0'; tem/=10; } str[i]=0; reverse(str); printf("%s-%d=%d\n",max,mi,temp); } int is_same() { int i,len; len=strlen(str); for(i=0;i<len-1;i++) if(str[i]!=str[i+1]) return 0; return 1; } main() { int i; gets(str); while(strcmp("-1",str)) { i=0; printf("N=%s:\n",str); if(is_same()) printf("No!!\n"); else { while(1) { i++; find_max(); find_min(); sub(); if(temp==0||temp==6174) break; } printf("Ok!! %d times\n",i); } gets(str); } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator