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 |
哈哈哈 过了~~~~ 0ms#include<stdio.h> typedef int type; int partition(type *tt,int low,int high); void Qsort(type *tt,int low,int high); int main() { int m,j,i,k,tt[100]; while(scanf("%d",&m),m!=-1) { k=0; j=0; printf("N=%d:\n",m); if(m<1000||m>9999) k=-1; else{ while(m!=0&&m!=6174) { tt[0]=m%10; tt[1]=(m/10)%10; tt[2]=(m/100)%10; tt[3]=m/1000; Qsort(tt,0,3); if(tt[0]==tt[3]) j++; if(m>=1000) { m=tt[3]*1000+tt[2]*100+tt[1]*10+tt[0]-(tt[0]*1000+tt[1]*100+tt[2]*10+tt[3]); if(j==1) break; printf("%d-%d=%d\n",tt[3]*1000+tt[2]*100+tt[1]*10+tt[0],tt[0]*1000+tt[1]*100+tt[2]*10+tt[3],m); } else { m=(tt[3]*1000+tt[2]*100+tt[1]*10+tt[0])/10-(tt[0]*1000+tt[1]*100+tt[2]*10+tt[3]); printf("%d-%d=%d\n",(tt[3]*1000+tt[2]*100+tt[1]*10+tt[0])/10,tt[0]*1000+tt[1]*100+tt[2]*10+tt[3],m); } k++; } } if(k<=1) printf("No!!\n"); else printf("Ok!! %d times\n",k); } return 0; } int partition(type *tt,int low,int high) { type pivotkey; pivotkey=tt[low]; while(low<high) { while(low<high && tt[high]>=pivotkey) high--; tt[low]=tt[high]; while(low<high && tt[low]<=pivotkey) low++; tt[high]=tt[low]; } tt[low]=pivotkey; return low; } void Qsort(type *tt,int low,int high) { int pivot; if(low<high) { pivot=partition(tt,low,high); Qsort(tt,low,pivot-1); Qsort(tt,pivot+1,high); } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator